export class User { email:string; firstname: string; lastname: string; id: string; fullname: string; expirationDate: number; role:string[]; jwt:string; } export class Session{ public static removeUser() { COOKIE.deleteCookie(COOKIE.cookieName_id); COOKIE.deleteCookie("openAIRESession"); COOKIE.deleteCookie("openAIREUser"); } public static isLoggedIn(): boolean { var cookie= COOKIE.getCookie(COOKIE.cookieName_id); return (cookie != null && cookie != ""); } public static setReloadUrl(host:string,path:string, params:string) { var URL = {}; URL["host"]=host; URL["path"]=path; URL["params"]=params; COOKIE.setCookie("reloadURL", JSON.stringify(URL), -1); } public static getReloadUrl(plainText:boolean =false) { var URL = COOKIE.getCookie("reloadURL"); URL = JSON.parse(URL); return URL; } public static getParamsObj(params:string) { var object = null; if(params.split("&").length > 0){ object = {}; } params =(params && params.split("?").length > 1 )?params.split("?")[1]:params; for(var i=0; i = document.cookie.split(';'); let caLen: number = ca.length; let cookieName = `${name}=`; let c: string; for (let i: number = 0; i < caLen; i += 1) { c = ca[i].replace(/^\s+/g, ''); if (c.indexOf(cookieName) == 0) { return c.substring(cookieName.length, c.length); } } return null; } public static deleteCookie(name) { this.setCookie(name, '', -1); } public static setCookie(name: string, value: string, expireDays: number, path: string = '/') { //TODO fix domain? let d:Date = new Date(); d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000); let expires:string = `expires=${d.toUTCString()}`; // let cpath:string = path ? `; path=${path}` : ''; let domain = ""; if(typeof document !== 'undefined'){ if(document.domain.indexOf(".di.uoa.gr")!= -1){ // for development domain = ".di.uoa.gr"; }else if(document.domain.indexOf(".openaire.eu") != -1){ domain = ".openaire.eu"; } document.cookie = name+'='+value+'; path='+path+'; domain='+domain+';'; } } }