簡體   English   中英

如何使用策略過濾Sails.js藍圖查詢?

[英]How can I filter Sails.js blueprint queries using a policy?

我有一個isAuthorized策略,如果用戶被授權對給定的模型和模型實例執行給定的操作,則該策略返回true。

有沒有辦法將此策略應用於藍圖路由,例如,對file的GET請求只返回文件,當前用戶可以執行findOne

同樣,是否可以將相同的策略應用於藍圖填充結果,以便在填充的數組中只返回一些用戶關聯的文件?

為了做到這一點,我現在在每個控制器中覆蓋不太理想的find操作。 如果可以使用策略應用它而不破壞非常棒的藍圖路由/操作。

在我的sails -permissions模塊中,我覆蓋sails.js response類型,以便控制器僅響應允許用戶訪問的模型。

看到:

這是帆的一部分,也許是一個新功能?

http://sailsjs.com/documentation/concepts/policies#?using-policies-with-blueprint-actions

{
  UserController: {
      find: ['isAuthorized', 'filterByUserId'],
      findOne: ['isAuthorized', 'filterByUserId']
  }
}

API /政策/ filterByUserId.js

module.exports = function filterByUserId(req, res, next) {

    if ( req.session.user ){
        // Use existing req.options.where, or initialize it to an empty object
        req.options.where = req.options.where || {};

        // Set the default `userId`
        req.options.where.id = req.session.user.id;
    }
    //safe to do if isAuthorized policy is enforced in tandem.
    return next();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM