targo-frontend/src/modules/auth/auth-store.ts

49 lines
1.3 KiB
TypeScript

/* eslint-disable */
import { defineStore } from "pinia";
import { User } from "src/modules/users/types/user-interface";
import { AuthState } from "./types/auth-interface";
import { AuthService } from "./services/services-auth";
import { computed, ref } from "vue";
export const useAuthStore = defineStore('auth', () => {
const user = ref ({
firstName: 'Unknown',
lastName: 'Unknown',
email: 'guest@guest.com',
role: 'guest'
} as User);
const error = ref("");
const isAuthorizedUser = computed( () => user.value.role !== 'guest');
const login = () => {
//TODO: manage customer login process
};
const oidcLogin = () => {
const oidcPopup = AuthService.oidcLogin();
if (!oidcPopup) {
error.value = "You have popups blocked on this website!";
}
};
const logout = () => {
return "logout";
};
const setUser = (currentUser: User, isBypass: boolean = false, bypassRole?: string) => {
if (isBypass) {
user.value = {
firstName: "Testing",
lastName: "Tester",
email: "testingT@targointernet.com",
role: bypassRole || "guest"} as User;
} else {
user.value = currentUser;
}
};
return { login, oidcLogin, logout, setUser };
});