Remove old checkpermission and add missing permissions

This commit is contained in:
sianida26 2024-03-29 12:46:54 +07:00
parent 5329925090
commit 443dcdaa36
7 changed files with 26 additions and 58 deletions

View File

@ -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 getAllPermissions from "@/modules/permission/actions/getAllPermissions";
import PermissionsTable from "@/modules/permission/tables/PermissionTable/PermissionTable"; import PermissionsTable from "@/modules/permission/tables/PermissionTable/PermissionTable";
import { Card, Stack, Title } from "@mantine/core"; import { Card, Stack, Title } from "@mantine/core";
@ -20,11 +20,11 @@ export const metadata: Metadata = {
export default async function RolesPage({ searchParams }: Props) { export default async function RolesPage({ searchParams }: Props) {
const permissions = await checkMultiplePermissions({ const permissions = await checkMultiplePermissions({
create: "permission.create", create: "permissions.create",
readAll: "permission.readAll", readAll: "permissions.readAll",
read: "permission.read", read: "permissions.read",
update: "permission.update", update: "permissions.update",
delete: "permission.delete", delete: "permissions.delete",
}); });
const res = await getAllPermissions(); const res = await getAllPermissions();

View File

@ -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 unauthorized from "@/modules/dashboard/utils/unauthorized";
import getAllRoles from "@/modules/role/actions/getAllRoles"; import getAllRoles from "@/modules/role/actions/getAllRoles";
import RolesTable from "@/modules/role/tables/RolesTable/RolesTable"; import RolesTable from "@/modules/role/tables/RolesTable/RolesTable";
@ -6,26 +6,17 @@ import { Card, Stack, Title } from "@mantine/core";
import { Metadata } from "next"; import { Metadata } from "next";
import React from "react"; import React from "react";
interface Props {
searchParams: {
detail?: string;
edit?: string;
delete?: string;
create?: string;
};
}
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Roles - Dashboard", title: "Roles - Dashboard",
}; };
export default async function RolesPage() { export default async function RolesPage() {
const permissions = await checkMultiplePermissions({ const permissions = await checkMultiplePermissions({
create: "role.create", create: "roles.create",
readAll: "role.readAll", readAll: "roles.readAll",
read: "role.read", read: "roles.read",
update: "role.update", update: "roles.update",
delete: "role.delete", delete: "roles.delete",
}); });
if (!permissions.readAll) unauthorized() if (!permissions.readAll) unauthorized()

View File

@ -1,4 +1,4 @@
import { RoleCode } from "@/modules/permission/data/initialRoles"; import { RoleCode } from "@/modules/role/data/initialRoles";
import getCurrentUser from "./getCurrentUser"; import getCurrentUser from "./getCurrentUser";
export default async function getUserRoles(): Promise<RoleCode[]> { export default async function getUserRoles(): Promise<RoleCode[]> {

View File

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

View File

@ -1,5 +1,5 @@
import { PermissionCode } from "@/modules/permission/data/initialPermissions"; 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 { export default interface SidebarMenu {
label: string; label: string;

View File

@ -2,6 +2,12 @@ import { Permission } from "@prisma/client";
const permissionData = [ const permissionData = [
// Permission group // Permission group
{
code: "permissions.create",
name: "Create permission",
description: "Allows creating a single permission",
isActive: true,
},
{ {
code: "permissions.read", code: "permissions.read",
name: "Read permission", name: "Read permission",
@ -27,6 +33,12 @@ const permissionData = [
isActive: true, isActive: true,
}, },
// Role group // Role group
{
code: "roles.create",
name: "Create role",
description: "Allows creating a single role",
isActive: true,
},
{ {
code: "roles.read", code: "roles.read",
name: "Read role", name: "Read role",