【问题标题】:Flow router and filtering roles - Meteor流路由器和过滤角色 - Meteor
【发布时间】:2016-05-15 05:40:55
【问题描述】:

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

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

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

客户//Account//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 函数:

Client//Lib//routes.js

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

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

我希望您了解我的问题,并期待解决方案。总之,我需要有 'admin' 和 'user' 角色,当它是 admin 时应该去 /admin-dashboard 路由,如果是用户应该去 /帐户 路线。

谢谢大家 :D

【问题讨论】:

    标签: meteor roles flow-router


    【解决方案1】:

    问题来了:

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

    但是roles 字段是一个数组,所以改为:

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

    【讨论】:

    • 现在我的 'admin-dashboard' 路由运行良好,谢谢 :D 但是,'user' 角色部分不起作用,因为我没有将其设置为默认值。我试过这个: function myCreateUser (email, password, name) { var id, defaultRoles = ['default', 'user']; id = Accounts.createUser({ email: email, password: password, }); Roles.addUsersToRoles(id, defaultRoles);但是当我在客户端调用这个方法时,它就像不存在一样。
    • 考虑使用userIsInRole方法,而不是直接检查。如果没有默认角色,只需在里面添加else 块和FlowRouter.go('somewhere')
    猜你喜欢
    • 2014-01-14
    • 2016-07-27
    • 1970-01-01
    • 2014-11-15
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2013-02-23
    相关资源
    最近更新 更多