@@ -128,33 +128,31 @@ export function config($stateProvider, $urlRouterProvider) {
128128/**
129129 * Validate routes on state change.
130130 *
131- * @param $rootScope
132- * @param $state
131+ * @param {TransitionService } $transitions
133132 * @param {SessionService } SessionService
134133 * @param {ToastService } ToastService
135134 */
136135// @ngInject
137- export function run ( $rootScope , $state , SessionService , ToastService ) {
136+ export function run ( $transitions , SessionService , ToastService ) {
138137
139138 // route validation
140- $rootScope . $on ( '$stateChangeStart' , stateChangeStart ) ;
139+ $transitions . onBefore ( { } , onBefore , { } ) ;
140+ $transitions . onSuccess ( { } , onSuccess , { } ) ;
141141
142- function stateChangeStart ( event , toState ) {
143- if ( toState . data ) {
144- const user = SessionService . getUser ( ) ;
145- const project = SessionService . getProject ( ) ;
142+ function onBefore ( transition ) {
143+ const user = SessionService . getUser ( ) ;
144+ const project = SessionService . getProject ( ) ;
146145
147- document . querySelector ( 'title' ) . innerHTML = 'ALEX | ' + toState . data . title ;
146+ const data = transition . to ( ) . data ;
147+ if ( ( data . roles && ( user === null || data . roles . indexOf ( user . role ) === - 1 ) )
148+ || ( data . requiresProject && project === null ) ) {
148149
149- if ( ( toState . data . roles && ( user === null
150- || toState . data . roles . indexOf ( user . role ) === - 1 ) )
151- || ( toState . data . requiresProject && project === null ) ) {
152-
153- ToastService . danger ( 'You are not allowed to go to this page!' ) ;
154-
155- $state . go ( 'home' ) ;
156- event . preventDefault ( ) ;
157- }
150+ ToastService . danger ( 'You cannot access this page!' ) ;
151+ return transition . router . stateService . target ( 'home' ) ;
158152 }
159153 }
154+
155+ function onSuccess ( transition ) {
156+ document . querySelector ( 'title' ) . innerHTML = 'ALEX | ' + transition . to ( ) . data . title ;
157+ }
160158}
0 commit comments