4

我希望能够在 Meteor 身份验证系统中将用户标记为“管理员”,并允许该用户做一些特殊的事情,以及显示一些如果他们不是管理员我不会显示的 gui 元素。我已经尝试在用户对象上设置一个“管理”属性,这在服务器端可以正常工作(对于管理操作的 RPC),但是我需要在客户端访问它以更改渲染页面,并且似乎只有电子邮件是使用 Meteor.user() 对象发送的。

基本问题:如何分配服务器和客户端都可以看到的用户特定属性?

4

2 回答 2

7

对于未来的任何人,只需在数据库的用户表中分配值。您可以使用以下命令向用户发布其他字段:

Meteor.publish("userData", function () {
     return Meteor.users.find({_id: this.userId}, {fields: {'admin': 1}});
});

在客户端:

Meteor.subscribe("userData");

噗。直接来自文档

于 2013-02-27T03:52:34.613 回答
0

您还可以在用户的​​“配置文件”属性中添加属性。profile 属性已经填充到客户端:

Meteor.users.update({_id: userId}, {$set: {'profile.admin': 1}});

//on client side
Meteor.user().profile.admin
于 2014-07-01T15:08:13.157 回答