2013-08-26 5 views
6

Мне интересно, сможет ли кто-нибудь продемонстрировать, как использовать глобальное действие «до» в классе контроллера маршрутизатора, который обрабатывает аутентификацию пользователя и отображает соответствующий маршрут/шаблон на основе результата.Контроллер авторизации IronRouter

В моем случае используется AppController, который действует как брандмауэр аутентификации и блокирует любые действия дочернего контроллера при выходе пользователя из системы. Например.

// Create a primary app controller stub with the auth firewall 
AppController = RouteController.extend({}); 

// Extend the AppController with all the other app routes 
MainController = AppController.extend({}); 

Любая помощь будет оценена!

ответ

5

В своем блоге написал в метеора я использую код:

AppController = RouteController.extend({ 
    before:function(){ 
    if(_.isNull(Meteor.user())){ 
     Router.go(Router.path('home')); 
    } 
    } 
}) 

AdminPostController = AppController.extend({ 
    waitOn: function() { return App.subs.posts} 
}); 

Router.map(function(){ 
    this.route('submitPost', { 
    path: '/submitPost', 
    controller:'AdminPostController', 
    template:'postCreate' 
    }); 
    this.route('editPost', { 
    path: '/post/:slug/edit', 
    controller:'AdminPostController', 
    template:'postEdit' 
    }); 
})