refactor(auth): added module and submodule access to the user

This commit is contained in:
2025-04-09 17:47:02 -05:00
parent ded074a1ce
commit efc630f5f8
10 changed files with 181 additions and 142 deletions

View File

@@ -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,
});
}

View File

@@ -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;
}