OK-432 setUser in sessioncontext
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 6d9d81c..e07753c 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -9,6 +9,8 @@
import { Globals } from './common/globals';
import { BaseDataLoaderService } from './services/jobs/base-data-loader.service';
import { MessageService, MessageDefines } from './services/message.service';
+import { JwtHelper } from 'angular2-jwt';
+import { User } from './model/user';
@Component({
selector: 'app-root',
@@ -25,12 +27,12 @@
private sessionContext: SessionContext,
private messageService: MessageService) {
- this.http.get('assets/settings.json')
+ this.http.get('assets/settings.json')
.subscribe(res => this.sessionContext.settings = res.json());
- this.sessionContext.centralHttpResultCode$.subscribe(rc => {
- this.onRcFromHttpService(rc);
- });
+ this.sessionContext.centralHttpResultCode$.subscribe(rc => {
+ this.onRcFromHttpService(rc);
+ });
}
@@ -38,36 +40,49 @@
this.extractTokenFromParameters();
}
-
+
/**
* Extract the params (suscribe to router event) and store them in the sessionContext.
*/
private extractTokenFromParameters() {
this.activatedRoute.params.subscribe((params: Params) => {
- this.sessionContext.setAccessToken(JSON.stringify(this.getParametersFromUrl()));
- console.log(this.sessionContext.getAccessToken());
+ const accessToken = JSON.stringify(this.getParametersFromUrl());
+ const jwtHelper: JwtHelper = new JwtHelper();
+ const decoded: any = jwtHelper.decodeToken(accessToken);
+ const user: User = new User();
+ user.username = decoded.preferred_username;
+ user.itemName = decoded.preferred_username;
+ user.name = decoded.given_name + ' ' + decoded.family_name;
+
+ if (decoded.realm_access.roles.filter(s => s === Globals.OAUTH2CONF_SUPERUSER_ROLE).length >= 1) {
+ user.specialUser = true;
+ }
+
+ this.sessionContext.setCurrUser(user);
+ this.sessionContext.setAccessToken(accessToken);
});
+
this.messageService.loginLogoff$.emit(MessageDefines.MSG_LOG_IN_SUCCEEDED);
}
- private getParametersFromUrl() {
+ private getParametersFromUrl() {
const parameter = window.location.search.substr(1);
return parameter != null && parameter !== '' ? this.readParamAccessToken(parameter) : {};
-}
+ }
-private readParamAccessToken( prmstr ) {
- const params = {};
- const prmarr = prmstr.split('&');
- for ( let i = 0; i < prmarr.length; i++) {
+ private readParamAccessToken(prmstr) {
+ const params = {};
+ const prmarr = prmstr.split('&');
+ for (let i = 0; i < prmarr.length; i++) {
const tmparr = prmarr[i].split('=');
params[tmparr[0]] = tmparr[1];
+ }
+ return params['accessToken'];
}
- return params['accessToken'];
-}
-//TODO redirect to Portal as login component has been removed.
-//handle different adresses for redirect (test, local, production environment)
-private onRcFromHttpService(rc: number): void {
+ //TODO redirect to Portal as login component has been removed.
+ //handle different adresses for redirect (test, local, production environment)
+ private onRcFromHttpService(rc: number): void {
if (rc === 401) {
this.router.navigate(['/XXX']);
}