|
259 | 259 | $rootScope.$on('$locationChangeStart', function (event, next, current) { |
260 | 260 | var nextRelativeUrl = (next && next.split('#')[1]) || '/'; |
261 | 261 | var forceLogoutUrls = [ |
262 | | - '/login', |
263 | 262 | '/signup/registration', |
264 | 263 | '/signup/otp-validation', |
265 | 264 | '/signup/succeed', |
|
271 | 270 | } |
272 | 271 |
|
273 | 272 | var unauthenticatedAllowed = [ |
274 | | - '/login', |
275 | 273 | '/signup/registration', |
276 | 274 | '/signup/otp-validation', |
277 | 275 | '/signup/confirmation', |
|
340 | 338 |
|
341 | 339 | function verifyAuthorization($location, auth) { |
342 | 340 | var openForAllUrls = ['/signup/error', '/temporal-token-error', '/dkim-configuration-tutorial']; |
343 | | - var requireLogoutUrls = ['/signup/confirmation', '/login', '/signup/registration', '/signup/otp-validation', '/signup/succeed', '/loginAdmin']; |
| 341 | + var requireLogoutUrls = ['/signup/confirmation', '/signup/registration', '/signup/otp-validation', '/signup/succeed', '/loginAdmin']; |
| 342 | + var redirectIfAuthedUrls = ['/login']; |
344 | 343 | var requireTemporalAuthUrls = ['/reset-password', '/change-email']; |
345 | 344 |
|
346 | 345 | // TODO: optimize it |
|
349 | 348 | var userIsAuthedTemporarily = userIsAuthed && auth.isTemporarilyAuthed(); |
350 | 349 | var pageOpenForAll = openForAllUrls.includes(currentPath); |
351 | 350 | var pageRequireLogout = requireLogoutUrls.includes(currentPath); |
| 351 | + var pageRedirectIfAuthed = redirectIfAuthedUrls.includes(currentPath); |
352 | 352 | var pageRequireTemporalAuth = requireTemporalAuthUrls.includes(currentPath); |
353 | | - |
| 353 | + |
354 | 354 | if(!auth.isUrlAllowed(currentPath)) { |
355 | 355 | $location.path(auth.getDefaultUrl() || '/login'); |
356 | 356 | } |
|
366 | 366 | return; |
367 | 367 | } |
368 | 368 |
|
| 369 | + if (pageRedirectIfAuthed) { |
| 370 | + if (userIsAuthedTemporarily) { |
| 371 | + auth.logOut(); |
| 372 | + return; |
| 373 | + } |
| 374 | + if (userIsAuthed) { |
| 375 | + $location.path(auth.getDefaultUrl() || '/reports'); |
| 376 | + return; |
| 377 | + } |
| 378 | + return; |
| 379 | + } |
| 380 | + |
369 | 381 | if (pageRequireTemporalAuth && !userIsAuthedTemporarily) { |
370 | 382 | $location.path('/temporal-token-error'); |
371 | 383 | return; |
|
0 commit comments