feat: modification de la gestion des rôles + ajout rôle d'un bureau #52
@@ -0,0 +1,27 @@
|
|||||||
|
import { useAuthStore } from '~/stores/auth'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Garde-fou global : empêche les utilisateurs non-admin d'accéder aux pages
|
||||||
|
* sous /admin/*. Renvoie vers la home pour les utilisateurs authentifiés
|
||||||
|
* non-admin, et vers /login pour les non authentifiés.
|
||||||
|
*
|
||||||
|
* L'API back rejette de toute façon les actions admin avec un 403, mais ce
|
||||||
|
* middleware évite l'affichage des pages vides / en erreur quand un user
|
||||||
|
* tape directement l'URL /admin/...
|
||||||
|
*/
|
||||||
|
export default defineNuxtRouteMiddleware(async (to) => {
|
||||||
|
if (!to.path.startsWith('/admin')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const auth = useAuthStore()
|
||||||
|
await auth.ensureSession()
|
||||||
|
|
||||||
|
if (!auth.isAuthenticated) {
|
||||||
|
return navigateTo('/login')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!auth.isAdmin) {
|
||||||
|
return navigateTo('/')
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -61,6 +61,7 @@ use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
|||||||
),
|
),
|
||||||
new Delete(
|
new Delete(
|
||||||
requirements: ['id' => '\d+'],
|
requirements: ['id' => '\d+'],
|
||||||
|
security: "is_granted('ROLE_ADMIN')",
|
||||||
),
|
),
|
||||||
new Get(
|
new Get(
|
||||||
uriTemplate: '/receptions/weigh',
|
uriTemplate: '/receptions/weigh',
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
|||||||
),
|
),
|
||||||
new Delete(
|
new Delete(
|
||||||
requirements: ['id' => '\d+'],
|
requirements: ['id' => '\d+'],
|
||||||
|
security: "is_granted('ROLE_ADMIN')",
|
||||||
),
|
),
|
||||||
new Get(
|
new Get(
|
||||||
uriTemplate: '/shipments/weigh',
|
uriTemplate: '/shipments/weigh',
|
||||||
|
|||||||
Reference in New Issue
Block a user