Meteor IronRouter onBeforeAction在延迟回调中导致异常

时间:2014-04-18 16:32:59

标签: permissions routing meteor iron-router meteor-blaze

我试图使用iron-router保护我的流星应用程序,这是我的onBeforeAction功能:

this.route('manageUsers', {
    path: '/panel/user_management', 
    layoutTemplate: 'panel',
    onBeforeAction: function(){
        if((Meteor.user() === null)||(Meteor.user().role !== 'superAdmin')){
            Router.go('signIn');
            throwAlert('You dont have access to see this page', 'notification');
        }
    }
});

当我尝试通过按下链接按钮转到/panel/user_management子页面时,一切正常(用户被重定向等),但是当我直接在浏览器中输入路径时{{1} })和命中输入用户没有被重定向,我收到控制台localhost:3000/panel/user_management错误。谁知道我做错了什么?

有关其他信息,此视图会列出我注册的所有用户。当我正常进入这条路径(没有错误)时,我看到完整的用户列表。当我收到错误时,模板不会出现在Exception in defer callback

1 个答案:

答案 0 :(得分:1)

最后,我已经解决了这个问题 - 问题是错误的if声明,这里是正确的:

if((!Meteor.user())||(Meteor.user().role !== 'superAdmin')){}