81 lines
1.7 KiB
TypeScript
81 lines
1.7 KiB
TypeScript
import Immerable from '@Models/GeneralImmer';
|
|
import cloneDeep from 'lodash/cloneDeep';
|
|
import { UserAccountInfo, UserOAuthUrl, UserSignOutUrl } from './types';
|
|
|
|
class User extends Immerable {
|
|
public userIsLogin: boolean;
|
|
|
|
public userAuthCheck: boolean;
|
|
|
|
public userAccount: UserAccountInfo;
|
|
|
|
public userToken: string;
|
|
|
|
public userOAuth: UserOAuthUrl;
|
|
|
|
public userSignOutUrl: UserSignOutUrl;
|
|
|
|
public constructor() {
|
|
super();
|
|
this.userIsLogin = false;
|
|
this.userAuthCheck = false;
|
|
this.userAccount = {
|
|
display_name: '',
|
|
email: '',
|
|
groups: [],
|
|
username: '',
|
|
};
|
|
this.userToken = '';
|
|
this.userOAuth = {
|
|
url: '',
|
|
};
|
|
this.userSignOutUrl = {
|
|
url: '',
|
|
};
|
|
}
|
|
|
|
public initialize(): void {
|
|
this.userIsLogin = false;
|
|
this.userAuthCheck = false;
|
|
this.userAccount = {
|
|
display_name: '',
|
|
email: '',
|
|
groups: [],
|
|
username: '',
|
|
};
|
|
this.userToken = '';
|
|
this.userOAuth = {
|
|
url: '',
|
|
};
|
|
this.userSignOutUrl = {
|
|
url: '',
|
|
};
|
|
}
|
|
|
|
public updateUserLoginState(newUserLoginState: boolean): void {
|
|
this.userIsLogin = newUserLoginState;
|
|
}
|
|
|
|
public updateUserAuthCheck(newUserAuthCheck: boolean): void {
|
|
this.userAuthCheck = newUserAuthCheck;
|
|
}
|
|
|
|
public updateUserToken(newUserToken: string): void {
|
|
this.userToken = cloneDeep(newUserToken);
|
|
}
|
|
|
|
public updateUserAccountInFo(newUserAccount: UserAccountInfo): void {
|
|
this.userAccount = cloneDeep(newUserAccount);
|
|
}
|
|
|
|
public updateUserOAuthUrl(newUserOAuth: UserOAuthUrl): void {
|
|
this.userOAuth = cloneDeep(newUserOAuth);
|
|
}
|
|
|
|
public updateUserSignOutUrl(newSignOutUrl: UserSignOutUrl): void {
|
|
this.userSignOutUrl = cloneDeep(newSignOutUrl);
|
|
}
|
|
}
|
|
|
|
export default User;
|