feat: HSAP platform v2 — modular navigation, quality review, audit log, world model simulation
Major changes: - New frontend (platform/web/): Vite + React 18 + TypeScript + Tailwind - 4-module navigation: 数据送标 / 模型管理 / 车队管理 / 系统管理 - Data catalog with charts (DMS/ADAS/Lane 3-tab view) - Quality review workflow (标注质检): Good/Fine/Bad scoring with auto-advance - Audit enhancements: batch operations, rejection categories, Feishu notifications - Operation audit log (操作日志) - World model simulation studio (仿真工坊) - Dataset version management with snapshots and diff - ADAS 7-class dataset integration (138K images organized + compressed) - User management with Feishu integration and pagination - CRUD/search/filter on all pages, card layout redesign - PIL-optimized image overlay rendering - Auto-snapshot on build, in_review workflow stage - Removed embedded algorithm code (now in workspace)
This commit is contained in:
25
platform/web/src/components/ModuleGuard.tsx
Normal file
25
platform/web/src/components/ModuleGuard.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import { useAuth } from "@/app/AuthContext";
|
||||
import { Redirect } from "react-router-dom";
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
interface ModuleGuardProps {
|
||||
requiredPerms: string[];
|
||||
fallback?: "redirect" | "message";
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export const ModuleGuard = ({ requiredPerms, fallback = "redirect", children }: ModuleGuardProps) => {
|
||||
const { hasPermission } = useAuth();
|
||||
const hasAccess = requiredPerms.some((p) => hasPermission(p));
|
||||
if (!hasAccess) {
|
||||
if (fallback === "redirect") return <Redirect to="/" />;
|
||||
return (
|
||||
<div className="page-container">
|
||||
<div className="card text-center py-12">
|
||||
<p className="text-gray-500 text-lg">您没有访问此模块的权限</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return <>{children}</>;
|
||||
};
|
||||
Reference in New Issue
Block a user