Skip to content

lidianhao123/egg-rbac

Repository files navigation

egg-rbac

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Install

$ npm i egg-rbac --save

depend on egg version

egg-rbac version egg version
0.3.0 1.x
0.4.0 2.0.0

From 0.4.0 version egg-rbac does not support egg 1.x.

depend on egg plugin

Usage

// {app_root}/config/plugin.js
exports.rbac = {
  enable: true,
  package: 'egg-rbac',
};

Configuration

config getRoleName

// {app_root}/config/config.default.js
exports.rbac = {
  /**
   * @param {object} ctx - egg context object
   * @return {object} promise, if resolve data is falsy, no role
   */
  * getRoleName(ctx) {
    return Promise.resolve('');
  },
};

Initialize roles and permissions

// {app_root/config/rbac.js}
'use strict';

exports.permissions = [
  // action_resource
  // { name: 'create_user', alias: '创建用户' },
  // { name: 'delete_user', alias: '删除用户' },
  // { name: 'query_user', alias: '查询用户' },
  // { name: 'edit_user', alias: '修改用户' },
];

exports.roles = [
  // { name: 'admin', alias: '管理员', grants: exports.permissions.map(item => item.name) },
];

see config/config.unittest.js for more detail.

Example

  1. see rbac-test
  2. practical example egg-rbac-example

Remarks

  • It will create a superadmin role which own all permissions.

License

MIT