我希望允许根据用户属性在我的 Meteor 集合中添加和删除。
这就是我设置管理员用户的方式:
if (Meteor.isServer) {
if (Meteor.users.find().count() === 0) {
Accounts.createUser({
username:'Greg',
password:'default',
isAdmin: 1
});
}
}
我现在希望允许 isAdmin = true 的每个用户通过 Accounts.createUser 创建另一个用户:
Meteor.methods({
makeUser: function(attributes) {
var user = Meteor.user();
if (user.isAdmin)
Accounts.createUser(attributes)
else
console.log('User ' + user.username + ' created a player.')
}
})
用户永远不会被创建,就好像 user.isAdmin 永远不等于 true 一样。我究竟做错了什么?这与发布和订阅有关吗?目前我仍然打开自动发布。
最佳答案
将标志 isAdmin
添加到配置文件对象:
Accounts.createUser({
username:'Greg',
password:'default',
profile:{
isAdmin: 1
}
});
参见docs
Accounts.createUser
方法仅允许添加字段用户名
、密码
、电子邮件
和个人资料
到用户对象。
Meteor.methods({
makeUser: function(attributes) {
var user = Meteor.user();
if (user.profile && user.profile.isAdmin)
Accounts.createUser(attributes)
else
console.log('User ' + user.username + ' created a player.')
}
})
更新
考虑使用包 roles .
关于javascript - 允许基于 Meteor.user() 属性的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26231811/