Hello,
In my ui-router I added for each state a data property specifying an access 
level - either 'anon' or 'user': a state with a value 'anon' should be 
acessible for any user, a ste with an acess level of 'user' should be 
accessible for logged-in users. Example:

.config(['$urlRouterProvider','$stateProvider',function($urlRouterProvider,$stateProvider){
    $urlRouterProvider.otherwise('/home');

    // Anonymous route
    $stateProvider
    .state('login',{
        url:'/login',
        templateUrl:"app/views/login.html",
        controller:"SecurityController",
        data:{
            access: 'anon'
        }
    })
    //secured route
    .state('home',{
        url:'/home',
        templateUrl:"app/views/home.htm",
        controller:"SecurityController",
        data:{
            access: 'user'
        }
    })

I check the state of the view user wants to load at $readyStateChange event:

        $rootScope.$on('$stateChangeStart',
            function(event,toState,toParams,fromState,fromParams){
// check toState.data.access to current user access level

This works fine. When I'm not logged in and a page with accesslevel 'anon' 
is loaded and I try to load a page with access level 'user' I am redirected 
to the login page. But when I'm not logged in and navigate directly to one 
of the pages with accesslevel 'user', the requested page is loaded and 
there is no redirect. It looks like the $stateChangeStart event is never 
fired in this case because any console.log() in the body of the callback 
function does not display.

How can I restrict acess to a pages also in this case?

Thanks,

Marc

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to