1

我现在处理一个问题超过10天,我不知道该怎么办,所以我希望我能在这里得到我的解决方案。

我有两个角色“管理员”和“用户”:由于 alanning:roles 包,第一个用户被添加为管理员。但是,问题是我不确定我是否将“用户”角色设置为默认值。

下图显示了 createUser 函数的代码。

客户//帐户//account.js

Template.signup.events({
  'submit form': function(event) {
    event.preventDefault();
    var nameVar =  event.target.signupName.value;
    var emailVar = event.target.signupEmail.value;
    var passwordVar = event.target.signupPassword.value;

    Accounts.createUser({
      name: nameVar,
      email: emailVar,
      password: passwordVar,
      profile: {
        roles: ["user"]
      } 

     });
  }
});

下面的代码是 Accounts.onLogin 函数:

客户端//Lib//routes.js

if (Meteor.user().roles = 'admin'){
  FlowRouter.go('dashboard');
}

else if (Meteor.user().roles = 'user'){
    FlowRouter.go('account');
}

我希望你明白我的问题是什么,我期待着解决方案。总之,我需要有“管理员”和“用户”角色,当它是管理员时,它应该去/admin-dashboard路由,如果是用户,它应该去/account路由。

谢谢大家 :D

4

1 回答 1

0

问题在这里:

if (Meteor.user().roles = 'admin'){ // assigning, not equality check
  FlowRouter.go('dashboard');
}

else if (Meteor.user().roles = 'user'){
    FlowRouter.go('account');
}

但是rolesfield 是一个数组,所以请改为:

if (Meteor.user().roles.indexOf('admin') !== -1){
  FlowRouter.go('dashboard');
}

else if (Meteor.user().roles.indexOf('user') !== -1){
    FlowRouter.go('account');
}
于 2016-02-05T10:00:47.917 回答