如何在Sails.js中创建更改权限属性?

时间:2015-02-04 08:40:50

标签: sails.js

例如:我们的模型个人资料。每个用户个人资料的属性alias_name只能设置一次(创建时),并且无法更改(更新时)。

当然,我可以覆盖控制器中的操作.update(),并从req.body中删除该属性。但随后失去了所有神奇的蓝图API。

我可以制作更多可以从req.body删除属性的特殊政策。但不确定是对的。

也许应该在Profile模型的方法.beforeUpdate()中进行?

怎么做得更好?分享你的经历?

1 个答案:

答案 0 :(得分:1)

您可以使用custom validation rule方法获取此属性

// /api/models/profile.js

module.exports = {
    attributes: {
        alias_name: {
            type: 'string',
            nonEditable: true
        }
    },
//  ...
    types: {
        nonEditable: function(prop) {
            return prop === null;
        }
    }
}

因此,此字段只能更改一次(如果您没有为defaultsTo指定alias_name