53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
const Auth = {
|
|
isAuthenticated: false,
|
|
authenticate(cb: any) {
|
|
Auth.SetUser(cb);
|
|
Auth.isAuthenticated = true;
|
|
},
|
|
GetUser() {
|
|
return JSON.parse(localStorage.getItem("user") || "null");
|
|
},
|
|
SetUser(newUser: any) {
|
|
localStorage.setItem("user", JSON.stringify(newUser));
|
|
},
|
|
Check(): boolean {
|
|
if (Auth.isAuthenticated) {
|
|
return true;
|
|
}
|
|
if (localStorage.getItem("user") !== null) {
|
|
return !Auth.GetUser().anonymous;
|
|
}
|
|
return false;
|
|
},
|
|
signout() {
|
|
Auth.isAuthenticated = false;
|
|
const oldUser = Auth.GetUser();
|
|
oldUser.id = 0;
|
|
localStorage.setItem("user", JSON.stringify(oldUser));
|
|
},
|
|
SetPreference(key: string, value: any) {
|
|
let preference = JSON.parse(
|
|
localStorage.getItem("user_preference") || "{}"
|
|
);
|
|
preference = preference == null ? {} : preference;
|
|
preference[key] = value;
|
|
localStorage.setItem("user_preference", JSON.stringify(preference));
|
|
},
|
|
GetPreference(key: string): any | null {
|
|
const preference = JSON.parse(
|
|
localStorage.getItem("user_preference") || "{}"
|
|
);
|
|
if (preference && preference[key] !== undefined) {
|
|
return preference[key];
|
|
}
|
|
return null;
|
|
},
|
|
GetPreferenceWithDefault(key: string, defaultVal: any): any {
|
|
return Auth.GetPreference(key) !== null
|
|
? Auth.GetPreference(key)
|
|
: defaultVal;
|
|
},
|
|
};
|
|
|
|
export default Auth;
|