2016-10-13 16 views
0

generator-angular-fullstackを使用しています。タイプ: 'collaborator'という新しい役割を追加したいと考えています。generator-angular-fullstack - 特定のルートの役割に基づいてユーザーのアクセス許可を確認する方法

ログインしたユーザーが協力者ロールを持っているかどうかを確認してから、「api/things」を削除または更新することができます。ただし、新しいものを取得または作成したい場合は、他の役割で行うことができます。

私はさまざまな方法でこれを試していますが、運はありません。

任意の助けいただければ幸い

、 おかげで、このようなサーバー/ API/someAPI/index.jsファイルauth.hasRole('collaborator')を追加で

答えて

2

必要に応じて、:サーバー/ AUTHで次に

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.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'); 
    } 
    }); 
} 
関連する問題