1.0.1 • Published 8 years ago

shimo-rbac v1.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

usage

  const rbac = new RBAC(roles, options);

  // 访问路由时检查权限
  // allow: result = null
  // deny: result = [deny reason]
  const result = rbac.check({
    roles: 'admin'  // roleId or array of roleId,
    target: 'get /admin', // route
  });

  // 更新数据时检查权限
  // allow: result = null
  // deny: result = [deny reason]
  const result = rbac.check({
    roles: 'admin'  // roleId or array of roleId,
    target: 'team', // model name
    source: {       // data to update
      balance: 999,
    }
  });

roles

  • name {String}
  • merge {Enum: force | merge} 多个 role 如何合并权限, force 独占, merge 合并
  • weight {Number} 合并权限时的权重
  • desc {String}
namemergeweight
adminforce1
bannedforce2
freemerge999999
vipmerge10
alphamerge0

permissions

  • target {String}
  • action {Enum: deny(0) | read(1) | write(2) | readwrite(3)}
roletargetaction
adminteam.balance3
guestget /1
guestget /desktop0
freeget /desktop1
freeget /vip_feature0
vipget /vip_feature1
alphaget /alpha_feature1

列表中的权限默认为禁止 普通用户 free 付费用户 free vip 合并 禁止用户