2016-10-13 2 views
0

Я использую генератор-угловой-fullstack, и я хотел бы иметь возможность добавить новую роль типа: «соавтор».generator-angular-fullstack - как проверить права доступа пользователей на основе ролей для определенных маршрутов

Затем проверьте, есть ли у пользователя loggedin роль соавтора, прежде чем он сможет удалить или обновить «api/things», однако, если они хотят получить или создать новые вещи, они смогут сделать это с любой другой ролью.

Я пробовал это различными способами, но не повезло.

Любая помощь будет оценена, Спасибо,

ответ

2

В вашем сервере/API/someAPI/index.js файл добавить auth.hasRole('collaborator') по мере необходимости, как это:

router.get('/', controller.index); 
router.post('/', controller.create); 
router.put('/:id', auth.hasRole('collaborator'), controller.update); 
router.delete('/:id', auth.hasRole('collaborator'), controller.destroy); 

Затем в сервере/AUTH /auth.service.js убедитесь, что у вас есть что-то вроде этого:

function hasRole(roleRequired) { 

    if (!roleRequired) { 
    throw new Error('Required role needs to be set'); 
    } 

    return (0, _composableMiddleware2.default)().use(isAuthenticated()).use(function meetsRequirements(req, res, next) { 
    if (_environment2.default.userRoles.indexOf(req.user.role) <= _environment2.default.userRoles.indexOf(roleRequired)) { 
     next(); 
    } else { 
     res.status(403).send('Forbidden'); 
    } 
    }); 
} 
Смежные вопросы