从 Sails 中的模型内部获取当前用户

Get current user from inside the model in Sails

我在 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 的问题。目前,帆和水线的建造方式无法做到这一点。

您可以在初始模型调用中使用 select 属性 来限制返回的列。由于这将在您的控制器的上下文中,您将有权访问请求 object。

这里有一堆关于这个主题的相关问题/答案。

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

https://github.com/balderdashy/waterline/pull/787

Sails Google Group Discussion on the topic