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 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();
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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[]> {
|
||||||
|
|
|
||||||
|
|
@ -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 { 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;
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user