我已将角色添加到我的用户集合。我正在尝试将所有用户集合仅发布给管理员用户,但目前只返回管理员集合。
Publish code:
Meteor.publish("users", function() {
let result = [];
if (Roles.userIsInRole(this.userId, ["admin"])) {
result = Meteor.users.find({});
} else {
this.stop();
}
return result;
});
Subscription
Meteor.subscribe("users");
添加管理员:
if (!Meteor.users.find().count()) {
var users = [
{ name: "Johnson Doe", email: "admin@example.com", roles: ["admin"] }
];
_.each(users, function(user) {
var id;
id = Accounts.createUser({
email: user.email,
password: "password@123",
profile: { name: user.name }
});
if (user.roles.length > 0) {
Roles.addUsersToRoles(id, user.roles, "default-group");
}
});
}
管理员用户是否可以访问所有其他用户集合?
答案 0 :(得分:0)
在声明addUsersToRoles
像
userIsInRole
来确保它具有管理员集合。
Roles.addUsersToRoles(userId, ['admin']);
您可以仔细检查此Usage Examples