feat(rbac): enforce procurement write restrictions and support supervisor role in SSO
This commit is contained in:
+12
-1
@@ -71,6 +71,15 @@ function HomeRoute() {
|
||||
return <DashboardPage />;
|
||||
}
|
||||
|
||||
// دسترسی ایجاد استعلام/پیشنهاد (ویزارد) فقط برای مدیر تدارکات و ادمین
|
||||
function RequireProcurementWrite({ children }: { children: React.ReactNode }) {
|
||||
const user = useAuthStore((s) => s.user);
|
||||
if (user?.role !== "admin" && user?.role !== "procurement_manager") {
|
||||
return <Navigate to={user?.role === "pm" ? "/inventory" : "/"} replace />;
|
||||
}
|
||||
return <>{children}</>;
|
||||
}
|
||||
|
||||
// پنل «مدیریت پروژه (PM)» — اپ PM روی همان دامنه زیر مسیر /pm سرو میشود و
|
||||
// اینجا بهصورت iframe تمامصفحه داخل پوسته ERP نمایش داده میشود.
|
||||
function PmPanelPage() {
|
||||
@@ -109,7 +118,9 @@ export default function App() {
|
||||
path="/wizard"
|
||||
element={
|
||||
<RequireAuth>
|
||||
<WizardPage />
|
||||
<RequireProcurementWrite>
|
||||
<WizardPage />
|
||||
</RequireProcurementWrite>
|
||||
</RequireAuth>
|
||||
}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user