我在 Sails 中使用模型的 toJSON()
方法,以便在模型通过应用程序的 API 公开时控制其某些属性的可见性。
为了决定显示哪些属性以及忽略哪些属性,我需要知道当前用户的权限。那么,如何从模型内部获取当前用户呢?或者有更好的方法(模式)来解决这个问题吗?
这是我想要实现的一些示例代码:
toJSON: function () {
var result = {};
result.firstName = this.firstName;
result.lastName = this.lastName;
// Exposing emails only to admin users.
if (currentUser.isAdmin()) {
result.email = this.email;
}
return result;
}
最佳答案
您询问有关读取模型调用中的 session 的问题。目前的 sails 和水线 build 方式你无法做到这一点。
您可以在初始模型调用中使用 select
属性来限制返回的列。由于这将在您的 Controller 的上下文中,您将有权访问 req 对象。
以下是关于此主题的一系列相关问题/答案。
sails.js Use session param in model
Is it possible to access a session variable directly in a Model in SailsJS
https://github.com/balderdashy/waterline/issues/556
关于javascript - 从 Sails 中的模型内部获取当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145550/