1

我正在尝试使用 来保护我的流星应用程序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通过按下链接按钮转到子页面时,一切正常(用户被重定向等),但是当我直接在浏览器(localhost:3000/panel/user_management)中键入路径并按 Enter 时,用户没有被重定向,我在控制台中收到Exception in defer callback错误。有人知道我在做什么错吗?

有关其他信息,此视图列出了所有已注册的用户。当我正常访问此路径时(没有错误),我会看到完整的用户列表。当我收到错误模板没有出现在> yield.

4

1 回答 1

1

最后,我解决了这个问题 - 问题是错误if的陈述,这是正确的:

if((!Meteor.user())||(Meteor.user().role !== 'superAdmin')){}
于 2014-04-19T09:00:30.273 回答