2013-08-26 11 views
6

Mi chiedo se qualcuno possa dimostrare come utilizzare un'azione "prima" globale su una classe di controller router che gestisce l'autenticazione dell'utente e visualizza il percorso/modello appropriato in base al risultato.Controller di autorizzazione IronRouter

Il mio caso d'uso è di avere un AppController che funge da firewall di autenticazione e blocca tutte le azioni del controller figlio quando un utente viene disconnesso. Per esempio.

// 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({}); 

Qualsiasi aiuto sarebbe apprezzato!

risposta

5

Nel mio blog scritto in meteora io uso il codice:

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' 
    }); 
}) 
Problemi correlati