53 lines
1.2 KiB
JavaScript

import call from './call';
export default class Auth {
constructor() {
this.isLoggedIn = false;
this.user = null;
this.user_image = null;
this.cookie = null;
this.cookie = Object.fromEntries(
document.cookie
.split('; ')
.map(part => part.split('='))
.map(d => [d[0], decodeURIComponent(d[1])])
);
this.isLoggedIn = this.cookie.user_id && this.cookie.user_id !== 'Guest';
}
async login(email, password) {
localStorage.removeItem('current_team');
let res = await call('login', {
usr: email,
pwd: password
});
if (res) {
await window.$account.fetchAccount();
let last_used_team = window.$account.team.last_used_team;
let team = window.$account.team.name;
if (last_used_team && last_used_team != team) {
team = last_used_team;
window.$account.switchTeam(last_used_team);
}
localStorage.setItem('current_team', team);
this.isLoggedIn = true;
window.location.reload();
return res;
}
return false;
}
async logout() {
localStorage.removeItem('current_team');
await call('logout');
window.location.reload();
}
async resetPassword(email) {
return await call('jcloud.api.account.send_reset_password_email', {
email
});
}
}