authority-handler
TypeScript icon, indicating that this package has built-in type declarations

1.0.12 • Public • Published

authority-handler

npm version

Install

npm install authority-handler

or use yarn

yarn add authority-handler

Configuration

  • Permission Map
/** 權限Map */
export const functionPermissionMap = {
    NONE: 0,
    READ: 1 << 0, // 1 讀取
    CREATE: 1 << 1, // 2 建立
    UPDATE: 1 << 2, // 4 更新
    DELETE: 1 << 3, // 8 刪除
    EXPORT: 1 << 4, // 16 匯出
    IMPORT: 1 << 5, // 32 匯入
}
  • Determine the permission of services' functions
/** 服務權限值對應表 */
export const servicePermissionMap = {
    /** 服務一 */
    F01:
        functionPermissionMap.READ |
        functionPermissionMap.CREATE |
        functionPermissionMap.UPDATE |
        functionPermissionMap.DELETE,
    /** 服務二 */
    F02:
        functionPermissionMap.READ |
        functionPermissionMap.CREATE |
        functionPermissionMap.UPDATE |
        functionPermissionMap.DELETE |
        functionPermissionMap.EXPORT |
        functionPermissionMap.IMPORT,
    /** 服務三 */
    F03:
        functionPermissionMap.READ | 
        functionPermissionMap.EXPORT | 
        functionPermissionMap.IMPORT,
};

Usage

  • Create an instance
import AuthorityHandler from 'authority-handler'

const authorityHandler = new AuthorityHandler({ 
    servicePermissionMap, 
    permissionMap, // optional
});
  • Verify the authoriy of service
const functionPermissionMap = authorityHandler.functionPermissionMap;

const result = authorityHandler.verifyServicePermission('F01', functionPermissionMap.READ);
// true / false
  • Verify the user's permission of service
// Data to be verified
const userAuthorities = 
    [
        { serviceKey: 'F01', permission: 3 },
        { serviceKey: 'F02', permission: 3 },
        { serviceKey: 'F03', permission: 16 },
    ];

const result = authorityHandler.verifyUserAuthorities(userAuthorities, 'F01', 'READ');

// true / false

Readme

Keywords

Package Sidebar

Install

npm i authority-handler

Weekly Downloads

0

Version

1.0.12

License

ISC

Unpacked Size

12.2 kB

Total Files

9

Last publish

Collaborators

  • leonshih