feat(permissions) : add role-based UI guards and readonly mode for viewers

- Add usePermissions composable (isAdmin, canEdit, canView)
- Password-protected profile login with modal on profiles page
- Disable all form fields for ROLE_VIEWER across edit/create pages
- Show navigation buttons (Modifier/Consulter) for all roles, hide delete for viewers
- Add readonly prop to ModelTypeForm for category pages
- Disable modal fields (sites, constructeurs) for viewers
- Guard /admin routes in middleware

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-02-26 13:36:42 +01:00
parent 6bed715b7f
commit cc70fe2b29
46 changed files with 946 additions and 423 deletions

View File

@@ -41,7 +41,7 @@ export default defineNuxtConfig({
|| process.env.NUXT_PUBLIC_API_BASE_URL
|| 'http://localhost/api',
public: {
apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:8081/api',
apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || '/api',
appUrl: process.env.NUXT_PUBLIC_APP_URL || 'http://localhost:3001',
appName: process.env.NUXT_PUBLIC_APP_NAME || 'Inventory Management System',
appVersion: appVersion,
@@ -54,7 +54,15 @@ export default defineNuxtConfig({
}
},
vite: {
plugins: [tailwindcss()]
plugins: [tailwindcss()],
server: {
proxy: {
'/api': {
target: 'http://localhost',
changeOrigin: true,
},
},
},
},
css: ['~/assets/app.css'],
router: {