49 lines
1.3 KiB
TypeScript
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 };
|
|
});
|
|
|