Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Sails中的模型内部获取当前用户_Javascript_Node.js_Sails.js_Access Control - Fatal编程技术网

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

Javascript 从Sails中的模型内部获取当前用户,javascript,node.js,sails.js,access-control,Javascript,Node.js,Sails.js,Access Control,我在Sails中使用模型的toJSON()方法,以便在通过应用程序的API公开模型时控制其某些属性的可见性 为了决定显示哪些属性和忽略哪些属性,我需要知道当前用户的权限。那么,如何从模型内部获取当前用户?还是有更好的方法(模式)来解决这个问题 下面是我想要实现的一些示例代码: toJSON:function(){ var result={}; result.firstName=this.firstName; result.lastName=this.lastName; //仅向管理员用户公开电子

我在Sails中使用模型的
toJSON()
方法,以便在通过应用程序的API公开模型时控制其某些属性的可见性

为了决定显示哪些属性和忽略哪些属性,我需要知道当前用户的权限。那么,如何从模型内部获取当前用户?还是有更好的方法(模式)来解决这个问题

下面是我想要实现的一些示例代码:

toJSON:function(){
var result={};
result.firstName=this.firstName;
result.lastName=this.lastName;
//仅向管理员用户公开电子邮件。
if(currentUser.isAdmin()){
result.email=this.email;
}
返回结果;
}

您询问如何阅读模型调用中的会话。目前船帆和水线的建造方式无法做到这一点

您可以在初始模型调用中使用
select
属性来限制返回的列。因为这将在控制器的上下文中,所以您可以访问req对象

以下是关于这个主题的一系列相关问题/答案


谢谢@Meeker,现在我明白重点了。我们不能为此使用全局对象,因为Node.js是并发的。然而,你能推荐一个优雅的方法来解决我的问题吗?不知何故,我们需要将当前用户注入其中……现在,我已经将所有代码提取到一个特殊的序列化服务中,并从toJSON模型函数中调用它。此服务需要当前用户操作,如何注入?或者我需要从其他角度来解决这个问题,这样可以更容易地获得对请求对象的访问?更新了我的答案,并提供了有关使用select属性的建议。谢谢您的建议,然而,有时实体是通过
填充
来解决的,我希望将此逻辑与模型保持在一起,以便以某种方式集中它(实体可以从多个地方获取,等等)。我已经设法解决了这个问题,只需将特殊的请求上下文对象从控制器传递到模型的自定义序列化函数。