Remove old checkpermission and add missing permissions
This commit is contained in:
parent
5329925090
commit
443dcdaa36
|
|
@ -1,4 +1,4 @@
|
|||
import checkMultiplePermissions from "@/modules/dashboard/services/checkMultiplePermissions";
|
||||
import checkMultiplePermissions from "@/modules/auth/utils/checkMultiplePermissions";
|
||||
import getAllPermissions from "@/modules/permission/actions/getAllPermissions";
|
||||
import PermissionsTable from "@/modules/permission/tables/PermissionTable/PermissionTable";
|
||||
import { Card, Stack, Title } from "@mantine/core";
|
||||
|
|
@ -20,11 +20,11 @@ export const metadata: Metadata = {
|
|||
|
||||
export default async function RolesPage({ searchParams }: Props) {
|
||||
const permissions = await checkMultiplePermissions({
|
||||
create: "permission.create",
|
||||
readAll: "permission.readAll",
|
||||
read: "permission.read",
|
||||
update: "permission.update",
|
||||
delete: "permission.delete",
|
||||
create: "permissions.create",
|
||||
readAll: "permissions.readAll",
|
||||
read: "permissions.read",
|
||||
update: "permissions.update",
|
||||
delete: "permissions.delete",
|
||||
});
|
||||
|
||||
const res = await getAllPermissions();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import checkMultiplePermissions from "@/modules/dashboard/services/checkMultiplePermissions";
|
||||
import checkMultiplePermissions from "@/modules/auth/utils/checkMultiplePermissions";
|
||||
import unauthorized from "@/modules/dashboard/utils/unauthorized";
|
||||
import getAllRoles from "@/modules/role/actions/getAllRoles";
|
||||
import RolesTable from "@/modules/role/tables/RolesTable/RolesTable";
|
||||
|
|
@ -6,26 +6,17 @@ import { Card, Stack, Title } from "@mantine/core";
|
|||
import { Metadata } from "next";
|
||||
import React from "react";
|
||||
|
||||
interface Props {
|
||||
searchParams: {
|
||||
detail?: string;
|
||||
edit?: string;
|
||||
delete?: string;
|
||||
create?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Roles - Dashboard",
|
||||
};
|
||||
|
||||
export default async function RolesPage() {
|
||||
const permissions = await checkMultiplePermissions({
|
||||
create: "role.create",
|
||||
readAll: "role.readAll",
|
||||
read: "role.read",
|
||||
update: "role.update",
|
||||
delete: "role.delete",
|
||||
create: "roles.create",
|
||||
readAll: "roles.readAll",
|
||||
read: "roles.read",
|
||||
update: "roles.update",
|
||||
delete: "roles.delete",
|
||||
});
|
||||
|
||||
if (!permissions.readAll) unauthorized()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { RoleCode } from "@/modules/permission/data/initialRoles";
|
||||
import { RoleCode } from "@/modules/role/data/initialRoles";
|
||||
import getCurrentUser from "./getCurrentUser";
|
||||
|
||||
export default async function getUserRoles(): Promise<RoleCode[]> {
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
import "server-only";
|
||||
import checkPermission from "@/modules/auth/utils/checkPermission";
|
||||
import getCurrentUser from "@/modules/auth/utils/getCurrentUser";
|
||||
|
||||
/**
|
||||
* Checks multiple permissions for the current user and returns an object indicating
|
||||
* whether each permission is granted.
|
||||
*
|
||||
* Deprecated. Use `checkMultiplePermission()` from auth module instead.
|
||||
*
|
||||
* @deprecated
|
||||
* @param permissions - An object with keys as permission names and values as the required roles/permissions.
|
||||
* @returns An object with keys as permission names and boolean values indicating whether the permission is granted.
|
||||
*/
|
||||
async function checkMultiplePermissions<T extends Record<string, string>>(
|
||||
permissions: T
|
||||
): Promise<{ [K in keyof T]: boolean }> {
|
||||
const permissionResults: Partial<{ [K in keyof T]: boolean }> = {};
|
||||
const currentUser = await getCurrentUser();
|
||||
|
||||
for (const permissionKey in permissions) {
|
||||
if (permissions.hasOwnProperty(permissionKey)) {
|
||||
const requiredPermission = permissions[permissionKey];
|
||||
const isPermissionGranted = await checkPermission(
|
||||
requiredPermission,
|
||||
currentUser
|
||||
);
|
||||
permissionResults[permissionKey] = isPermissionGranted;
|
||||
}
|
||||
}
|
||||
|
||||
return permissionResults as { [K in keyof T]: boolean };
|
||||
}
|
||||
|
||||
export default checkMultiplePermissions;
|
||||
2
src/modules/dashboard/types/SidebarMenu.d.ts
vendored
2
src/modules/dashboard/types/SidebarMenu.d.ts
vendored
|
|
@ -1,5 +1,5 @@
|
|||
import { PermissionCode } from "@/modules/permission/data/initialPermissions";
|
||||
import { RoleCode } from "@/modules/permission/data/initialRoles";
|
||||
import { RoleCode } from "@/modules/role/data/initialRoles";
|
||||
|
||||
export default interface SidebarMenu {
|
||||
label: string;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ import { Permission } from "@prisma/client";
|
|||
|
||||
const permissionData = [
|
||||
// Permission group
|
||||
{
|
||||
code: "permissions.create",
|
||||
name: "Create permission",
|
||||
description: "Allows creating a single permission",
|
||||
isActive: true,
|
||||
},
|
||||
{
|
||||
code: "permissions.read",
|
||||
name: "Read permission",
|
||||
|
|
@ -27,6 +33,12 @@ const permissionData = [
|
|||
isActive: true,
|
||||
},
|
||||
// Role group
|
||||
{
|
||||
code: "roles.create",
|
||||
name: "Create role",
|
||||
description: "Allows creating a single role",
|
||||
isActive: true,
|
||||
},
|
||||
{
|
||||
code: "roles.read",
|
||||
name: "Read role",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user