Project

General

Profile

1
import {StringUtils} from '../../utils/string-utils.class';
2

    
3
export class User {
4
    email:string;
5
    firstname: string;
6
    lastname: string;
7
    id: string;
8
    fullname: string;
9
    expirationDate: number;
10
    role:string[];
11
    jwt:string;
12

    
13
}
14

    
15
export class Session{
16
  public static removeUser() {
17
    COOKIE.deleteCookie(COOKIE.cookieName_id);
18
    COOKIE.deleteCookie("openAIRESession");
19
    COOKIE.deleteCookie("openAIREUser");
20
  }
21

    
22
  public static isLoggedIn(): boolean {
23
      var cookie= COOKIE.getCookie(COOKIE.cookieName_id);
24
      return (cookie != null && cookie != "");
25
  }
26

    
27
  public static setReloadUrl(host:string,path:string, params:string) {
28
    var URL = {};
29
    URL["host"]=host;
30
    URL["path"]=path;
31
    URL["params"]=params;
32
    COOKIE.setCookie("reloadURL", JSON.stringify(URL), -1);
33
  }
34
  public static getReloadUrl(plainText:boolean =false) {
35
    var URL = COOKIE.getCookie("reloadURL");
36
    URL = JSON.parse(URL);
37
    return URL;
38

    
39
  }
40
  public static getParamsObj(params:string) {
41
      var object = null;
42
      if(params.split("&").length > 0){
43
        object = {};
44
      }
45
      params =(params && params.split("?").length > 1 )?params.split("?")[1]:params;
46
      for(var i=0; i<params.split("&").length; i++){
47
        object[(params.split("&")[i]).split("=")[0]] = (params.split("&")[i]).split("=")[1];
48
      }
49

    
50
    return object;
51

    
52
  }
53

    
54
  //Methods to check roles
55
  public static isClaimsCurator(user: User): boolean {
56
    return user !== null &&
57
      user.role.indexOf('urn:geant:openaire.eu:group:Curator+-+Claim#aai.openaire.eu') !== -1;
58
  }
59

    
60
  public static isCommunityCurator(user: User): boolean {
61
    return user !== null &&
62
      user.role.indexOf('urn:geant:openaire.eu:group:Curator+-+Community#aai.openaire.eu') !== -1;
63
  }
64

    
65
  public static isPortalAdministrator(user: User): boolean {
66
    return user !== null &&
67
      user.role.indexOf('urn:geant:openaire.eu:group:Portal+Administrator#aai.openaire.eu') !== -1;
68
  }
69

    
70
  public static isUserManager(user: User): boolean {
71
    return user !== null &&
72
      user.role.indexOf('urn:geant:openaire.eu:group:User+Manager#aai.openaire.eu') !== -1;
73
  }
74

    
75
  public static isRegisteredUser(user: User): boolean {
76
    return user !== null &&
77
      user.role.indexOf('urn:geant:openaire.eu:group:Registered+User#aai.openaire.eu') !== -1;
78
  }
79

    
80

    
81
}
82
export class COOKIE{
83
    public static cookieName_id:string="AccessToken";
84

    
85
    public static  getCookie(name: string) : string {
86
      if(typeof document == 'undefined'){
87
        return null;
88
      }
89
      let ca: Array<string> = document.cookie.split(';');
90
      let caLen: number = ca.length;
91
      let cookieName = `${name}=`;
92
      let c: string;
93

    
94
      for (let i: number = 0; i < caLen; i += 1) {
95
          c = ca[i].replace(/^\s+/g, '');
96
          if (c.indexOf(cookieName) == 0) {
97
              return c.substring(cookieName.length, c.length);
98
          }
99
      }
100
      return null;
101
  }
102
  public static deleteCookie(name) {
103
      this.setCookie(name, '', -1);
104
  }
105
  public static setCookie(name: string, value: string, expireDays: number, path: string = '/') {
106
    //TODO fix domain?
107
      let d:Date = new Date();
108
      d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);
109
      let expires:string = `expires=${d.toUTCString()}`;
110
      // let cpath:string = path ? `; path=${path}` : '';
111
      let domain = "";
112
      if(typeof document !== 'undefined'){
113
        if(document.domain.indexOf(".di.uoa.gr")!= -1){ // for development
114
          domain = ".di.uoa.gr";
115
        }else if(document.domain.indexOf(".openaire.eu") != -1){
116
          domain = ".openaire.eu";
117
        }
118
        document.cookie = name+'='+value+'; path='+path+'; domain='+domain+';';
119
      }
120
  }
121
}
(2-2/2)