- 최고관리자(Supervisor) 전용 2중 보안 잠금 시스템 및 인증 UI 적용 - 데이터베이스 인프라 및 암호화 마스터 키 자가 관리 기능 구축 - 권한 계층(Supervisor > Admin > User) 기반의 메뉴 노출 및 접근 제어 로직 강화 - 시스템 버전 정보 페이지 신규 추가 및 패키지 버전 자동 연동 (v0.2.5) - 사용자 관리 UI 디자인 개선 및 폰트/스타일 일원화
64 lines
2.6 KiB
TypeScript
64 lines
2.6 KiB
TypeScript
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
|
|
import { AuthProvider } from '../shared/auth/AuthContext';
|
|
import { SystemProvider } from '../shared/context/SystemContext';
|
|
import { AuthGuard } from '../shared/auth/AuthGuard';
|
|
import { MainLayout } from '../widgets/layout/MainLayout';
|
|
import { LoginPage } from '../pages/auth/LoginPage';
|
|
|
|
// Modules
|
|
import { assetModule } from '../modules/asset/module';
|
|
import { cctvModule } from '../modules/cctv/module';
|
|
import { productionModule } from '../modules/production/module';
|
|
import ModuleLoader from './ModuleLoader';
|
|
|
|
// Platform / System Pages
|
|
import { UserManagementPage } from './pages/UserManagementPage';
|
|
import { BasicSettingsPage } from './pages/BasicSettingsPage';
|
|
import { VersionPage } from './pages/VersionPage';
|
|
import { LicensePage } from '../system/pages/LicensePage';
|
|
|
|
import './styles/global.css';
|
|
|
|
const modules = [assetModule, cctvModule, productionModule];
|
|
|
|
export const App = () => {
|
|
return (
|
|
<AuthProvider>
|
|
<SystemProvider>
|
|
<BrowserRouter>
|
|
<Routes>
|
|
{/* Public Routes */}
|
|
<Route path="/login" element={<LoginPage />} />
|
|
|
|
{/* Protected Routes */}
|
|
<Route element={
|
|
<AuthGuard>
|
|
<MainLayout modulesList={modules} />
|
|
</AuthGuard>
|
|
}>
|
|
{/* Dynamic Module Routes */}
|
|
<Route path="/*" element={<ModuleLoader modules={modules} />} />
|
|
|
|
{/* Navigation Fallback within Layout */}
|
|
<Route index element={<Navigate to="/asset/dashboard" replace />} />
|
|
|
|
{/* Platform Admin Routes (Could also be moved to an Admin module later) */}
|
|
<Route path="/admin/users" element={<UserManagementPage />} />
|
|
<Route path="/admin/settings" element={<BasicSettingsPage />} />
|
|
<Route path="/admin/license" element={<LicensePage />} />
|
|
<Route path="/admin/version" element={<VersionPage />} />
|
|
<Route path="/admin" element={<Navigate to="/admin/settings" replace />} />
|
|
</Route>
|
|
|
|
{/* Fallback */}
|
|
<Route path="*" element={<Navigate to="/login" replace />} />
|
|
</Routes>
|
|
</BrowserRouter>
|
|
</SystemProvider>
|
|
</AuthProvider>
|
|
);
|
|
};
|
|
|
|
export default App;
|
|
|