Name: egg-userrole
Owner: egg
Description: user role plugin for egg
Created: 2016-07-17 08:45:13.0
Updated: 2018-05-18 08:39:17.0
Pushed: 2017-11-23 10:09:35.0
Homepage: null
Size: 20
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Provide dynamic roles based authorisation. Use koa-roles.
m i egg-userrole --save
app_root}/config/plugin.js
rts.userrole = {
ckage: 'egg-userrole',
Recommend to use along with custom
userservice
plugin (which providectx.user
).see
egg-userservice
for more info.
Roles
build-in failureHandler
:
tion failureHandler(ctx, action) {
nst message = 'Forbidden, required role: ' + action;
(ctx.acceptJSON) {
ctx.body = {
message: message,
stat: 'deny',
};
else {
ctx.status = 403;
ctx.body = message;
Build-in user
role define:
role.use('user', ctx => !!ctx.user);
failureHandler
Define app.role.failureHandler(action)
method in config/role.js
app/extend/context.js
app_root}/config/role.js or {framework_root}/config/role.js
le.exports = app => {
p.role.failureHandler = function(ctx, action) {
if (ctx.acceptJSON) {
ctx.body = { target: loginURL, stat: 'deny' };
} else {
ctx.realStatus = 200;
ctx.redirect(loginURL);
}
app_root}/config/role.js or {framework_root}/config/role.js
le.exports = function(app) {
p.role.use('admin', ctx => {
return ctx.user && ctx.user.isAdmin;
;
p.role.use('can write', async ctx => {
const post = await ctx.service.post.fetch(ctx.request.body.id);
return ctx.user.name === post.author;
;
Please open an issue here.