2016-09-23 9 views
1

セイルで複数のポリシーを適用する方法:/users/:id/ordersのようにセイルによって生成されるルート。私は、設定/ routes.jsルート上のセイルに複数のポリシーを適用する

'/users/:id/orders' : { 
    policy : 'isAuthenticated' 
} 

しかし、どのように悲しいドキュメントhttp://sailsjs.org/documentation/concepts/routes/custom-routes#?policy-target-syntaxがルートに政策を連鎖について話しません同様に

答えて

1

を複数のポリシーを適用することができ、このような単一のポリシーを適用することができます。別の方法として、あなたがそうのようなユーザーのコントローラでpopulateアクションを保護することができ

:編集config/policies.js

UserController: { 
    populate: ['isAuthenticated', 'isAllowed'] 
} 

http://sailsjs.org/documentation/reference/blueprint-api/populate-where

あなただけの注文のみ関連付けにポリシーを適用する場合は、することができますポリシー内のreqオブジェクトから関連付けパラメータ(/:model/:id/:association)を取得し、ケースを処理します。

module.exports = function(req, res, next) { 
    if (req.param('association') == 'orders') { 
     // do your magic 
    } else { 
    return next(); 
    } 
}; 
関連する問題