refactor(auth): added module and submodule access to the user
This commit is contained in:
@@ -8,7 +8,7 @@ export function getUsers() {
|
||||
queryFn: () => fetchUsers(token),
|
||||
enabled: !!token, // Prevents query if token is null
|
||||
staleTime: 1000,
|
||||
//refetchInterval: 2 * 2000,
|
||||
refetchInterval: 2 * 2000,
|
||||
refetchOnWindowFocus: true,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,25 +1,44 @@
|
||||
import {Modules} from "@/types/modules";
|
||||
import {User} from "@/types/users";
|
||||
import { Modules } from "@/types/modules";
|
||||
import { User } from "@/types/users";
|
||||
|
||||
// user will need access to the module.
|
||||
// users role will determine there visual access
|
||||
export function hasAccess(user: User | null, moduleName: string | null, modules: Modules[]): boolean {
|
||||
export function hasAccess(
|
||||
user: User | null,
|
||||
moduleName: string | null,
|
||||
modules: Modules[]
|
||||
): boolean {
|
||||
// get the modules for the id
|
||||
const filteredModule = modules?.filter((f) => f.name === moduleName);
|
||||
//console.log(filteredModule[0].module_id);
|
||||
//console.log(filteredModule[0]);
|
||||
// userroles and filter out by the module id,
|
||||
|
||||
return user?.roles.find((role) => role.module_id === filteredModule[0].module_id) ? true : false;
|
||||
const roleCheck: any = user?.roles.find(
|
||||
(role) => role.module_id === filteredModule[0].module_id
|
||||
);
|
||||
|
||||
if (filteredModule[0].roles.includes(roleCheck?.role)) {
|
||||
return true;
|
||||
}
|
||||
//if(filteredModule[0].roles.includes(roleCheck.))
|
||||
return false;
|
||||
}
|
||||
|
||||
export function hasPageAccess(user: User | null, role: any, module_id: string): boolean {
|
||||
export function hasPageAccess(
|
||||
user: User | null,
|
||||
role: any,
|
||||
module_id: string
|
||||
): boolean {
|
||||
if (role.includes("viewer")) return true;
|
||||
if (!user) return false;
|
||||
|
||||
// get only the module in the user profile
|
||||
//console.log(user);
|
||||
const userRole = user?.roles.filter((role) => role.module_id === module_id);
|
||||
console.log(userRole[0]?.role);
|
||||
// if (role.includes(userRole[0]?.role)) {
|
||||
|
||||
if (role.includes(userRole[0]?.role)) return true;
|
||||
|
||||
// return true};
|
||||
if (userRole.length !== 0) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user