- Add Workspace, Role, Permission, RolePermission, AdminRoleAssignment, and AdminWorkspaceAssignment models to Prisma schema\n- Create database migration and RBAC seed script\n- Implement PermissionsGuard, @RequirePermission decorator, and real-time permission resolution in JwtAdminStrategy\n- Implement AdminManagementModule with endpoints for managers CRUD, roles matrix, permissions catalog, and workspaces\n- Secure all sensitive admin controllers with granular permission requirements\n- Add useAuthStore helpers (can, canAny, fetchMe) and v-permission directive\n- Implement Desktop views: AdminListView, AdminFormDrawer (RTL right-side), RoleMatrixView, WorkspaceListView, and ForbiddenView\n- Implement Mobile views: MAdminListView, MAdminFormView (stepped mobile form), MRoleMatrixView, MWorkspaceListView, and MForbiddenView\n- Fix sticky header behavior across desktop and mobile shells\n- Update route guards and device detection logic for mobile prefixing
22 lines
567 B
TypeScript
22 lines
567 B
TypeScript
import Antd from 'ant-design-vue';
|
|
import 'ant-design-vue/dist/reset.css';
|
|
import './assets/fonts/fonts.css';
|
|
import { createPinia } from 'pinia';
|
|
import { createApp } from 'vue';
|
|
import App from './App.vue';
|
|
import { bindDeviceRouter } from './composables/useDevice';
|
|
import { setupPermissionDirective } from './directives/permission.directive';
|
|
import { router } from './router';
|
|
|
|
const app = createApp(App);
|
|
const pinia = createPinia();
|
|
|
|
app.use(pinia);
|
|
app.use(router);
|
|
app.use(Antd);
|
|
setupPermissionDirective(app);
|
|
|
|
bindDeviceRouter(router);
|
|
|
|
app.mount('#app');
|