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']);
     }