Kaynağa Gözat

report permission

production
tommy 1 hafta önce
ebeveyn
işleme
1b23594ae8
3 değiştirilmiş dosya ile 17 ekleme ve 4 silme
  1. +14
    -1
      src/app/(main)/report/layout.tsx
  2. +2
    -2
      src/authorities.ts
  3. +1
    -1
      src/components/NavigationContent/NavigationContent.tsx

+ 14
- 1
src/app/(main)/report/layout.tsx Dosyayı Görüntüle

@@ -1,10 +1,23 @@
import { I18nProvider } from "@/i18n";
import { authOptions } from "@/config/authConfig";
import { AUTH } from "@/authorities";
import { getServerSession } from "next-auth";
import { redirect } from "next/navigation";

export default function ReportLayout({
export default async function ReportLayout({
children,
}: {
children: React.ReactNode;
}) {
const session = await getServerSession(authOptions);
const abilities = session?.user?.abilities ?? [];
const canAccess =
abilities.includes(AUTH.REPORT_MGMT) || abilities.includes(AUTH.ADMIN);

if (!canAccess) {
redirect("/dashboard");
}

return (
<I18nProvider namespaces={["report", "navigation", "common"]}>
{children}


+ 2
- 2
src/authorities.ts Dosyayı Görüntüle

@@ -16,6 +16,6 @@ export const AUTH = {
JOB_CREATE: "JOB_CREATE",
JOB_PICK: "JOB_PICK",
JOB_MAT: "JOB_MAT",
JOB_PROD: "JOB_PROD",
JOB_PROD: "JOB_PROD",
REPORT_MGMT: "REPORT_MGMT",
} as const;

+ 1
- 1
src/components/NavigationContent/NavigationContent.tsx Dosyayı Görüntüle

@@ -226,7 +226,7 @@ const NavigationContent: React.FC = () => {
icon: <Assessment />,
labelKey: "nav.report",
path: "/report",
requiredAbility: [AUTH.TESTING, AUTH.ADMIN],
requiredAbility: [AUTH.REPORT_MGMT, AUTH.ADMIN],
isHidden: false,
},
{


Yükleniyor…
İptal
Kaydet