backup
This commit is contained in:
80
frontend/app/services/User.js
Normal file
80
frontend/app/services/User.js
Normal file
@@ -0,0 +1,80 @@
|
||||
import { ref } from 'vue';
|
||||
import Server from './Server';
|
||||
|
||||
const UserStatus = ref(0);
|
||||
|
||||
function parseJwt(token) {
|
||||
return JSON.parse(atob(token.split('.')[1]));
|
||||
}
|
||||
|
||||
function SetUser(token){
|
||||
localStorage.setItem('token', token);
|
||||
UserStatus.value = 1;
|
||||
}
|
||||
|
||||
async function HasAdmin(){
|
||||
let response = await Server().get('/user/has-admin');
|
||||
return response.data.status != "init";
|
||||
}
|
||||
|
||||
async function SetUserSetting(key, value){
|
||||
let user = GetUser();
|
||||
if(!user.settings) user.settings = {};
|
||||
user.settings[key] = value;
|
||||
const response = await Server().post('/user/update-settings', { settings: user.settings });
|
||||
return response.data.settings;
|
||||
}
|
||||
|
||||
async function GetUserSetting(key){
|
||||
const response = await Server().get('/user/get-settings');
|
||||
if (response.data.settings)
|
||||
return response.data.settings[key];
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function GetUser(){
|
||||
const token = localStorage.getItem('token');
|
||||
|
||||
if(token){
|
||||
const data = parseJwt(token);
|
||||
|
||||
// Check if token is expired
|
||||
const now = Date.now() / 1000;
|
||||
if(now > data.exp){
|
||||
LogoutUser();
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function IsAdmin(){
|
||||
const user = GetUser();
|
||||
if(user){
|
||||
return user.admin;
|
||||
}
|
||||
}
|
||||
|
||||
function LoadUser(){
|
||||
const token = localStorage.getItem('token');
|
||||
if(token) UserStatus.value = 1;
|
||||
}
|
||||
|
||||
function LogoutUser(){
|
||||
localStorage.removeItem("token");
|
||||
UserStatus.value = 0;
|
||||
}
|
||||
|
||||
export {
|
||||
UserStatus,
|
||||
GetUser,
|
||||
SetUser,
|
||||
LoadUser,
|
||||
IsAdmin,
|
||||
LogoutUser,
|
||||
HasAdmin,
|
||||
GetUserSetting,
|
||||
SetUserSetting
|
||||
}
|
||||
Reference in New Issue
Block a user