Refactoring - Bonne version améliorée
This commit is contained in:
212
src/main/java/com/lions/dev/security/Permission.java
Normal file
212
src/main/java/com/lions/dev/security/Permission.java
Normal file
@@ -0,0 +1,212 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user