铁:路由器重定向不是管理员用户

时间:2017-04-24 17:51:37

标签: javascript meteor iron-router

我想阻止一些用户输入特定路线。我见过未登录用户的例子:

Router.onBeforeAction
(
    function () 
    {
        if (!Meteor.userId())
            this.redirect('/');
        else
            this.next();
    }
);

但是当我尝试

Router.onBeforeAction
(
    function () 
    {
        if ( !isadmin( Meteor.userId() ) && Router.current().route.getName()=='admin' )
            this.redirect('/');
        else
            this.next();
    }
);

我收到了下一条消息

  

iron_core.js?hash路由调度从未呈现过。你忘记了吗?   在onBeforeAction中调用this.next()?

2 个答案:

答案 0 :(得分:0)

尝试过这样的事情并且工作

Template.admin.onRendered(function() {
   if ( !isadmin( Meteor.userId() ) )
   {
        Router.go('/');
   }
});

答案 1 :(得分:0)

你走了:

Router.route('/your-url',{
    name:'routeName',
    onBeforeAction:function(){
        if(checkSomething){
            //check passed, continue routing
            this.next();
        } else {
            //check failed, redirect.
            Router.go('/not-authorized');
        }
    },

    action: function(){
         this.render('templateName');
    }
});