Project

General

Profile

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

    
11
}
12

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

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

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

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

    
48
    return object;
49

    
50
  }
51

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

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

    
65
  public static isMonitorCurator(user: User): boolean {
66
    return user &&
67
      (user.role.indexOf('urn:geant:openaire.eu:group:Expert+-+Funder#aai.openaire.eu') !== -1 ||
68
        user.role.indexOf('urn:geant:openaire.eu:group:Curator+-+Funder#aai.openaire.eu') !== -1);
69
  }
70

    
71
  public static isPortalAdministrator(user: User): boolean {
72
    return user &&
73
      (user.role.indexOf('urn:geant:openaire.eu:group:Portal+Administrator#aai.openaire.eu') !== -1 ||
74
      user.role.indexOf('PORTAL_ADMINISTRATOR') !== -1);
75
  }
76

    
77
  public static isUserManager(user: User): boolean {
78
    return user &&
79
      (user.role.indexOf('urn:geant:openaire.eu:group:User+Manager#aai.openaire.eu') !== -1 ||
80
      user.role.indexOf('USER_MANAGER') !== -1);
81
  }
82
  
83
  public static isSubscribedTo(type: string, id: string, user: User): boolean {
84
    return user && user.role.indexOf(type.toUpperCase() + '_' + id.toUpperCase()) !== -1;
85
  }
86
  
87
  public static isManager(type: string, id: string, user: User): boolean {
88
    return user && user.role.indexOf(type.toUpperCase() + '_' + id.toUpperCase() + '_MANAGER') !== -1
89
  }
90

    
91
  public static isRegisteredUser(user: User): boolean {
92
    return user &&
93
      (user.role.indexOf('urn:geant:openaire.eu:group:Registered+User#aai.openaire.eu') !== -1 ||
94
      user.role.indexOf('REGISTERED_USER') !== -1);
95
  }
96

    
97

    
98
}
99
export class COOKIE{
100
    public static cookieName_id:string="AccessToken";
101

    
102
    public static  getCookie(name: string) : string {
103
      if(typeof document == 'undefined'){
104
        return null;
105
      }
106
      let ca: Array<string> = document.cookie.split(';');
107
      let caLen: number = ca.length;
108
      let cookieName = `${name}=`;
109
      let c: string;
110

    
111
      for (let i: number = 0; i < caLen; i += 1) {
112
          c = ca[i].replace(/^\s+/g, '');
113
          if (c.indexOf(cookieName) == 0) {
114
              return c.substring(cookieName.length, c.length);
115
          }
116
      }
117
      return null;
118
  }
119
  public static deleteCookie(name) {
120
      this.setCookie(name, '', -1);
121
  }
122
  public static setCookie(name: string, value: string, expireDays: number, path: string = '/') {
123
    //TODO fix domain?
124
      let d:Date = new Date();
125
      d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);
126
      let expires:string = `expires=${d.toUTCString()}`;
127
      // let cpath:string = path ? `; path=${path}` : '';
128
      let domain = "";
129
      if(typeof document !== 'undefined'){
130
        if(document.domain.indexOf(".di.uoa.gr")!= -1){ // for development
131
          domain = ".di.uoa.gr";
132
        }else if(document.domain.indexOf(".openaire.eu") != -1){
133
          domain = ".openaire.eu";
134
        }
135
        document.cookie = name+'='+value+'; path='+path+'; domain='+domain+';';
136
      }
137
  }
138
}
(2-2/2)