javascript - 允许基于 Meteor.user() 属性的操作?

标签 javascript meteor

我希望允许根据用户属性在我的 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/

相关文章:

javascript - 通过jquery删除选中的属性.model值在knockout js中未更新

javascript - 鼠标悬停消息显示在图像的某些部分 jquery/js

Meteor.js 集合聚合返回未定义不是函数

meteor - 用户更新时包含在 currentUser 中的内容重新渲染

javascript - meteor :隐藏或删除元素?什么是最好的方法

node.js - 有没有一种简单的方法可以将 express 应用程序转换为 meteor?

javascript-如何从子窗口启用父窗口的控件

javascript - 鼠标悬停在 DIV 上,更改图像边框颜色

javascript - 破砖游戏只会按顺序破砖

client-server - Meteor 是如何工作的,客户端还是服务器?