質問

だから私はいくつかのフィールドを持つモデルを持っています:

// ...
slug: {
  type: 'string',
  required: true,
  alphanumeric: true,
  minLength: 3,
  maxLength: 16
},
loggedinAt: 'date',
// ...
.

私は帆の青写真構造を使ってすべてを自動的に地図するようにしています。ただし、厳密に内部にあるloggedinAtのようなフィールドがある場合によっては、ユーザーが設定できるようにしたくないです。

loggedinAtフィールドを指定してPOSTリクエストを作成すると、設定します。これを制限するにはどうすればよいですか?

役に立ちましたか?

解決

この動作を制限するためのポリシーを使用することができます。 API / Policies / RestrictuserCreate.js

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

    // Check for the "loggedInAt" field in the request
    if (req.param('loggedInAt')) {
       return res.badRequest("Nuh uh, you can't set that!");
    }

    return next();

}
.

または特定のフィールドを無視する(Sails v0.10.xのみ)、 blacklist

を使用してください。
module.exports = function (req, res, next) {

    // Make sure blacklist object exists, and use existing one if possible,
    // since this policy could be chained
    req.options.values = req.options.values || {};
    req.options.values.blacklist = req.options.values.blacklist || [];
    // Add restricted fields to the blacklist
    req.options.values.blacklist.push('loggedinAt');
    return next();

}
.

その後 config / policies.js

// Assuming your controller is "UserController"
UserController: {
    create: "restrictUserCreate"
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top