我希望能够在 Meteor 身份验证系统中将用户标记为“管理员”,并允许该用户做一些特殊的事情,以及显示一些如果他们不是管理员我不会显示的 gui 元素。我已经尝试在用户对象上设置一个“管理”属性,这在服务器端可以正常工作(对于管理操作的 RPC),但是我需要在客户端访问它以更改渲染页面,并且似乎只有电子邮件是使用 Meteor.user() 对象发送的。
基本问题:如何分配服务器和客户端都可以看到的用户特定属性?
我希望能够在 Meteor 身份验证系统中将用户标记为“管理员”,并允许该用户做一些特殊的事情,以及显示一些如果他们不是管理员我不会显示的 gui 元素。我已经尝试在用户对象上设置一个“管理”属性,这在服务器端可以正常工作(对于管理操作的 RPC),但是我需要在客户端访问它以更改渲染页面,并且似乎只有电子邮件是使用 Meteor.user() 对象发送的。
基本问题:如何分配服务器和客户端都可以看到的用户特定属性?
对于未来的任何人,只需在数据库的用户表中分配值。您可以使用以下命令向用户发布其他字段:
Meteor.publish("userData", function () {
return Meteor.users.find({_id: this.userId}, {fields: {'admin': 1}});
});
在客户端:
Meteor.subscribe("userData");
噗。直接来自文档。
您还可以在用户的“配置文件”属性中添加属性。profile 属性已经填充到客户端:
Meteor.users.update({_id: userId}, {$set: {'profile.admin': 1}});
//on client side
Meteor.user().profile.admin