Sails.jsモデルで設定されているフィールドを制限する
質問
だから私はいくつかのフィールドを持つモデルを持っています:
// ...
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"
}
. 所属していません StackOverflow