package com.lions.dev.security; /** * Enum des permissions granulaires du système RBAC. * * Nomenclature : RESSOURCE_ACTION * * @since 2.0 - Système RBAC production-ready */ public enum Permission { // ======================================== // PROFIL UTILISATEUR // ======================================== PROFILE_READ("Lire son propre profil"), PROFILE_UPDATE("Modifier son propre profil"), PROFILE_DELETE("Supprimer son propre compte"), // ======================================== // UTILISATEURS (Administration) // ======================================== USERS_READ_ALL("Lire tous les profils utilisateurs"), USERS_UPDATE_ANY("Modifier n'importe quel profil"), USERS_DELETE_ANY("Supprimer n'importe quel compte"), USERS_ASSIGN_ROLE("Attribuer des rôles aux utilisateurs"), USERS_ASSIGN_ROLES("Attribuer des rôles aux utilisateurs (alias)"), USERS_SUSPEND("Suspendre un compte utilisateur"), USERS_IMPERSONATE("Se connecter en tant qu'un autre utilisateur"), // ======================================== // SOCIAL / RECHERCHE // ======================================== SOCIAL_SEARCH("Rechercher des utilisateurs"), SOCIAL_FOLLOW("Suivre des utilisateurs"), SOCIAL_BLOCK("Bloquer des utilisateurs"), // ======================================== // ÉVÉNEMENTS // ======================================== EVENTS_READ("Consulter les événements"), EVENTS_CREATE("Créer un événement"), EVENTS_UPDATE_OWN("Modifier ses propres événements"), EVENTS_DELETE_OWN("Supprimer ses propres événements"), EVENTS_UPDATE_ANY("Modifier n'importe quel événement"), EVENTS_DELETE_ANY("Supprimer n'importe quel événement"), EVENTS_MODERATE("Modérer les événements (approuver, rejeter)"), EVENTS_PARTICIPATE("Participer à un événement"), EVENTS_INVITE("Inviter des utilisateurs à un événement"), EVENTS_VIEW_STATS("Voir les statistiques de ses événements"), EVENTS_VIEW_ALL_STATS("Voir les statistiques de tous les événements"), // ======================================== // ÉTABLISSEMENTS // ======================================== ESTABLISHMENTS_READ("Consulter les établissements"), ESTABLISHMENTS_CREATE("Créer un établissement"), ESTABLISHMENTS_UPDATE_OWN("Modifier son propre établissement"), ESTABLISHMENTS_DELETE_OWN("Supprimer son propre établissement"), ESTABLISHMENTS_UPDATE_ANY("Modifier n'importe quel établissement"), ESTABLISHMENTS_DELETE_ANY("Supprimer n'importe quel établissement"), ESTABLISHMENTS_MANAGE_STAFF("Gérer le personnel de l'établissement"), ESTABLISHMENTS_VIEW_ANALYTICS("Voir les analytics de son établissement"), ESTABLISHMENTS_VIEW_ALL_ANALYTICS("Voir les analytics de tous les établissements"), ESTABLISHMENTS_MANAGE_SUBSCRIPTIONS("Gérer les abonnements"), // ======================================== // RÉSERVATIONS // ======================================== RESERVATIONS_CREATE("Créer une réservation"), RESERVATIONS_READ_OWN("Voir ses propres réservations"), RESERVATIONS_VIEW_OWN("Voir ses propres réservations (alias)"), RESERVATIONS_UPDATE_OWN("Modifier ses propres réservations"), RESERVATIONS_DELETE_OWN("Supprimer ses propres réservations"), RESERVATIONS_CANCEL_OWN("Annuler ses propres réservations"), RESERVATIONS_READ_ESTABLISHMENT("Voir les réservations de son établissement"), RESERVATIONS_MANAGE_ESTABLISHMENT("Gérer les réservations de son établissement"), RESERVATIONS_READ_ALL("Voir toutes les réservations"), RESERVATIONS_VIEW_ALL("Voir toutes les réservations (alias)"), RESERVATIONS_UPDATE_ANY("Modifier n'importe quelle réservation"), RESERVATIONS_DELETE_ANY("Supprimer n'importe quelle réservation"), RESERVATIONS_CANCEL_ANY("Annuler n'importe quelle réservation"), RESERVATIONS_SCAN_QR("Scanner les QR codes de réservation"), // ======================================== // AVIS ET COMMENTAIRES // ======================================== REVIEWS_CREATE("Laisser un avis"), REVIEWS_UPDATE_OWN("Modifier ses propres avis"), REVIEWS_DELETE_OWN("Supprimer ses propres avis"), REVIEWS_DELETE_ANY("Supprimer n'importe quel avis"), REVIEWS_RESPOND("Répondre aux avis (établissement)"), REVIEWS_MODERATE("Modérer les avis"), // ======================================== // POSTS SOCIAUX // ======================================== POSTS_READ("Consulter les posts sociaux"), POSTS_CREATE("Créer un post social"), POSTS_UPDATE_OWN("Modifier ses propres posts"), POSTS_DELETE_OWN("Supprimer ses propres posts"), POSTS_DELETE_ANY("Supprimer n'importe quel post"), POSTS_MODERATE("Modérer les posts sociaux"), POSTS_LIKE("Liker un post"), POSTS_COMMENT("Commenter un post"), POSTS_SHARE("Partager un post"), // ======================================== // STORIES // ======================================== STORIES_READ("Consulter les stories"), STORIES_CREATE("Créer une story"), STORIES_DELETE_OWN("Supprimer ses propres stories"), STORIES_DELETE_ANY("Supprimer n'importe quelle story"), // ======================================== // MESSAGERIE // ======================================== MESSAGES_SEND("Envoyer des messages"), MESSAGES_READ_OWN("Lire ses propres messages"), MESSAGES_DELETE_OWN("Supprimer ses propres messages"), MESSAGES_READ_ALL("Lire tous les messages (support)"), // ======================================== // NOTIFICATIONS // ======================================== NOTIFICATIONS_READ_OWN("Lire ses propres notifications"), NOTIFICATIONS_SEND_TARGETED("Envoyer des notifications ciblées"), NOTIFICATIONS_SEND_BROADCAST("Envoyer des notifications à tous"), // ======================================== // RELATIONS SOCIALES (AMITIÉ) // ======================================== FRIENDS_SEND_REQUEST("Envoyer une demande d'amitié"), FRIENDS_ACCEPT_REQUEST("Accepter une demande d'amitié"), FRIENDS_REMOVE("Retirer un ami"), FRIENDS_VIEW_LIST("Voir sa liste d'amis"), // ======================================== // PROMOTIONS ET OFFRES // ======================================== PROMOTIONS_READ("Consulter les promotions"), PROMOTIONS_CREATE("Créer une promotion"), PROMOTIONS_UPDATE_OWN("Modifier ses propres promotions"), PROMOTIONS_DELETE_OWN("Supprimer ses propres promotions"), PROMOTIONS_MANAGE_ALL("Gérer toutes les promotions"), // ======================================== // CONTENU PROMOTIONNEL (Ambassadeurs) // ======================================== PROMO_CONTENT_CREATE("Créer du contenu promotionnel"), PROMO_CONTENT_FEATURED("Contenu mis en avant"), // ======================================== // FINANCES // ======================================== FINANCE_VIEW_OWN("Voir ses propres transactions"), FINANCE_VIEW_ESTABLISHMENT("Voir les finances de son établissement"), FINANCE_VIEW_ALL("Voir toutes les transactions"), FINANCE_MANAGE_PAYMENTS("Gérer les paiements"), FINANCE_MANAGE_PAYOUTS("Gérer les reversements"), FINANCE_GENERATE_REPORTS("Générer des rapports financiers"), // ======================================== // ADMINISTRATION SYSTÈME // ======================================== SUPER_ADMIN_ACCESS("Accès super administrateur complet"), ADMIN_DASHBOARD("Accéder au tableau de bord admin"), ADMIN_SETTINGS("Modifier les paramètres système"), ADMIN_LOGS("Consulter les journaux système"), ADMIN_MAINTENANCE("Effectuer des opérations de maintenance"), // ======================================== // MODÉRATION // ======================================== MODERATION_VIEW_REPORTS("Voir les signalements"), MODERATION_HANDLE_REPORTS("Traiter les signalements"), MODERATION_BAN_USER("Bannir un utilisateur"), MODERATION_HIDE_CONTENT("Masquer du contenu"), // ======================================== // SUPPORT CLIENT // ======================================== SUPPORT_VIEW_TICKETS("Voir les tickets de support"), SUPPORT_HANDLE_TICKETS("Traiter les tickets de support"), SUPPORT_VIEW_USER_DETAILS("Voir les détails utilisateur (support)"), SUPPORT_MODIFY_RESERVATIONS("Modifier les réservations (support)"), // ======================================== // API ET INTÉGRATIONS // ======================================== API_ACCESS("Accéder aux API"), API_MANAGE_KEYS("Gérer les clés API"), WEBHOOKS_MANAGE("Gérer les webhooks"), // ======================================== // ANALYTICS ET AUDIT // ======================================== ANALYTICS_VIEW_BASIC("Voir les analytics de base"), ANALYTICS_VIEW_ADVANCED("Voir les analytics avancés"), AUDIT_VIEW_LOGS("Voir les logs d'audit"), AUDIT_EXPORT_DATA("Exporter les données d'audit"); private final String description; Permission(String description) { this.description = description; } public String getDescription() { return description; } }