如何在 Sails.js 中允许更改属性?
How make permission for change attribute in Sails.js?
例如: 我们有模型 个人资料。每个用户配置文件都有属性 alias_name
,只能设置一次(创建时),并且不能更改(更新时).
当然我可以覆盖控制器中的操作 .update()
并从 req.body
中删除属性。但是后来失去了所有的魔法蓝图API.
更多 我可以创建将从 req.body
中删除该属性的特殊策略。但不确定是否正确。
也许应该在 Profile 模型的方法 .beforeUpdate()
中制作?
怎么办比较好?分享你的经验?
您可以针对此属性使用 custom validation rule 的方法
// /api/models/profile.js
module.exports = {
attributes: {
alias_name: {
type: 'string',
nonEditable: true
}
},
// ...
types: {
nonEditable: function(prop) {
return prop === null;
}
}
}
因此,此字段只能更改一次(如果您没有为 alias_name
指定 defaultsTo
)。
例如: 我们有模型 个人资料。每个用户配置文件都有属性 alias_name
,只能设置一次(创建时),并且不能更改(更新时).
当然我可以覆盖控制器中的操作 .update()
并从 req.body
中删除属性。但是后来失去了所有的魔法蓝图API.
更多 我可以创建将从 req.body
中删除该属性的特殊策略。但不确定是否正确。
也许应该在 Profile 模型的方法 .beforeUpdate()
中制作?
怎么办比较好?分享你的经验?
您可以针对此属性使用 custom validation rule 的方法
// /api/models/profile.js
module.exports = {
attributes: {
alias_name: {
type: 'string',
nonEditable: true
}
},
// ...
types: {
nonEditable: function(prop) {
return prop === null;
}
}
}
因此,此字段只能更改一次(如果您没有为 alias_name
指定 defaultsTo
)。