Files
mic-after-work-server-impl-…/src/main/java/com/lions/dev/security/Permission.java
2026-02-05 16:30:20 +00:00

213 lines
8.8 KiB
Java

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;
}
}