sprint9: app visibility — sidebar permission filter + TopBar + ProtectedRoute + route guards
Check Cross-Plugin Imports / check (push) Has been cancelled
Check Cross-Plugin Imports / check (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import React from 'react';
|
||||
import { Navigate } from 'react-router-dom';
|
||||
import { usePermission } from '@/hooks/usePermission';
|
||||
|
||||
interface ProtectedRouteProps {
|
||||
permission: string;
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export function ProtectedRoute({ permission, children }: ProtectedRouteProps) {
|
||||
const { hasPermission } = usePermission();
|
||||
|
||||
if (!hasPermission(permission)) {
|
||||
return <Navigate to="/kein-zugriff" replace />;
|
||||
}
|
||||
|
||||
return <>{children}</>;
|
||||
}
|
||||
Reference in New Issue
Block a user