ekangularbase
Version:
Authentication service for usermanagement(oidc client)
157 lines (129 loc) • 5.03 kB
text/typescript
import { BlockUI, NgBlockUI } from 'ng-block-ui';
import { AuthService } from '../auth/auth.service';
import { Injectable } from '@angular/core';
import { UNotificationControl } from '../interface/Interactive Component/UNotificationControl';
import { Router } from '@angular/router';
()
export class RouteHandleService {
() blockUI: NgBlockUI;
public Url: string;
constructor(private authService: AuthService
, public routerNav?: Router) {
}
checkifisroutehandling(component: UNotificationControl) {
const soid = localStorage.getItem('selectedObjectId');
if (soid != null && soid != '') {
const f = this.getocCode();
this.authService.changeSelectedOc(f);
component.selectedObjectId = soid;
component.NotificationControl();
this.stopblockUi();
this.clearsoid();
} else {
this.stopblockUi();
}
this.clearurl();
}
showblockUi() {
this.blockUI.start('Redirecting...');
}
stopblockUi() {
this.blockUI.stop();
}
isUrlExist(): boolean {
const url = localStorage.getItem('redirecturl');
return (url != null);
}
seturl(url: string, soid: string, occode: string) {
localStorage.setItem('redirecturl', url);
localStorage.setItem('selectedObjectId', soid);
localStorage.setItem('ocCode', occode);
}
geturl() {
const url = localStorage.getItem('redirecturl');
if (url != null) {
localStorage.removeItem('redirecturl');
return url;
} else {
return '';
}
}
getocCode() {
const occode = localStorage.getItem('ocCode');
if (occode != null) {
localStorage.removeItem('ocCode');
return occode;
} else {
return '';
}
}
clearurl() {
const url = localStorage.getItem('redirecturl');
if (url != null) {
localStorage.removeItem('redirecturl');
}
}
clearsoid() {
const soid = localStorage.getItem('selectedObjectId');
if (soid != null && soid != '') {
localStorage.removeItem('selectedObjectId');
}
}
isRedirectDetailsExist(): boolean {
const url = localStorage.getItem('redirectfullUrl');
return (url != null);
}
setRedirectDetails(fullUrl: string, url: string, count: number) {
console.log('setRedirectDetails start', fullUrl);
localStorage.setItem('redirectfullUrl', fullUrl);
localStorage.setItem('redirecturl', url);
localStorage.setItem('redirectcount', count.toString());
sessionStorage.setItem('sfullUrl', fullUrl);
console.log('setRedirectDetails end', url);
}
getRedirectDetails() {
try {
console.log('getRedirectDetails start', this.routerNav.url);
const sfullUrl = sessionStorage.getItem('sfullUrl');
console.log('getRedirectDetails sfullUrl', sfullUrl);
const fullUrl = localStorage.getItem('redirectfullUrl');
const url = localStorage.getItem('redirecturl');
const count = localStorage.getItem('redirectcount');
console.log('getRedirectDetails count', count);
if (fullUrl !== null && url !== null && count !== null) {
const no = parseInt(count, 10);
if (no <= 1) {
localStorage.removeItem('redirectfullUrl');
localStorage.removeItem('redirecturl');
localStorage.removeItem('redirectcount');
} else {
localStorage.setItem('redirectcount', (no - 1).toString());
}
const fullUrls = JSON.parse(fullUrl);
const urls = JSON.parse(url);
const result = { fullUrl: fullUrls[no - 1], url: urls[no - 1], count: no };
console.log('getRedirectDetails', result);
return result;
} else {
return null;
}
} catch (error) {
console.log('getRedirectDetails error', error);
return null;
}
}
setRedirectDetail(key: string, object: any) {
const objStr = JSON.stringify(object);
sessionStorage.removeItem(key);
sessionStorage.setItem(key, objStr);
console.log('setRedirectDetail end');
}
getRedirectDetail(key: string): any {
console.log('getRedirectDetail start', this.routerNav.url);
const objStr = sessionStorage.getItem(key);
console.log('getRedirectDetail objStr', objStr);
if (!objStr || objStr === null) { return null; }
const object = JSON.parse(objStr);
return object;
}
}