1.0.2 • Published 7 years ago

access-levels v1.0.2

Weekly downloads
7
License
MIT
Repository
github
Last release
7 years ago

access-levels

Небольшая библиотечка для рассчета уровней доступов по роля, по принципу бинарных масок.

Идея реализации позаимствована отсюда.

Usage

import buildLevels from 'access-levels'

const accessLevelsConfig = {
    'public': '*',
    'anon': [ 'anon' ],
    'user' : [ 'user', 'admin' ],
    'admin': [ 'admin' ]
}

const { roles, accessLevels } = buildLevels(accessLevelsConfig)

/**
 > roles
 { anon: { bitMask: 1, title: 'anon' },
  user: { bitMask: 2, title: 'user' },
  admin: { bitMask: 4, title: 'admin' } }

 > accessLevels
 { public: 7, anon: 1, user: 6, admin: 4 }
 */

const hasUserAccess = !!(roles.user.bitMask & accessLevels.user) // true
const hasAdminAccess = !!(roles.user.bitMask & accessLevels.admin) // false

Набор доступов и ролей приведенный в примере, встречается достаточно часто. Поэтому, в библиотеке он используется в качестве значения по умолчанию для функции buildLevels. Так что, эта строчка сработает аналогично:

const { roles, accessLevels } = buildLevels(/* default */)
1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago