1.0.12 • Published 1 year ago

authority-handler v1.0.12

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

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
1.0.9

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.12

1 year ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago