Ajout des permissions
This commit is contained in:
		
							
								
								
									
										102
									
								
								em2rp/lib/models/role_model.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								em2rp/lib/models/role_model.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
| import 'package:flutter/foundation.dart'; | ||||
|  | ||||
| enum Permission { | ||||
|   // Permissions liées aux prestations | ||||
|   viewAllEvents, // Voir toutes les prestations | ||||
|   viewAssignedEvents, // Voir uniquement les prestations assignées | ||||
|   editEvents, // Modifier les prestations | ||||
|   deleteEvents, // Supprimer les prestations | ||||
|   assignCrew, // Assigner des membres d'équipe aux prestations | ||||
|  | ||||
|   // Permissions liées aux finances | ||||
|   viewPrices, // Voir les prix | ||||
|   editPrices, // Modifier les prix | ||||
|   viewQuotes, // Voir les devis | ||||
|   createQuotes, // Créer des devis | ||||
|   editQuotes, // Modifier les devis | ||||
|   viewInvoices, // Voir les factures | ||||
|   createInvoices, // Créer des factures | ||||
|   editInvoices, // Modifier les factures | ||||
|  | ||||
|   // Permissions liées aux utilisateurs | ||||
|   viewUsers, // Voir les utilisateurs | ||||
|   editUsers, // Modifier les utilisateurs | ||||
|   deleteUsers, // Supprimer les utilisateurs | ||||
|  | ||||
|   // Permissions liées aux clients | ||||
|   viewClients, // Voir les clients | ||||
|   editClients, // Modifier les clients | ||||
|   deleteClients, // Supprimer les clients | ||||
| } | ||||
|  | ||||
| class Role { | ||||
|   final String name; | ||||
|   final Set<Permission> permissions; | ||||
|  | ||||
|   const Role({ | ||||
|     required this.name, | ||||
|     required this.permissions, | ||||
|   }); | ||||
|  | ||||
|   bool hasPermission(Permission permission) => permissions.contains(permission); | ||||
|  | ||||
|   bool hasAllPermissions(List<Permission> requiredPermissions) { | ||||
|     return requiredPermissions | ||||
|         .every((permission) => permissions.contains(permission)); | ||||
|   } | ||||
|  | ||||
|   bool hasAnyPermission(List<Permission> requiredPermissions) { | ||||
|     return requiredPermissions | ||||
|         .any((permission) => permissions.contains(permission)); | ||||
|   } | ||||
| } | ||||
|  | ||||
| class Roles { | ||||
|   static const admin = Role( | ||||
|     name: 'ADMIN', | ||||
|     permissions: { | ||||
|       // Toutes les permissions pour l'administrateur | ||||
|       Permission.viewAllEvents, | ||||
|       Permission.viewAssignedEvents, | ||||
|       Permission.editEvents, | ||||
|       Permission.deleteEvents, | ||||
|       Permission.assignCrew, | ||||
|       Permission.viewPrices, | ||||
|       Permission.editPrices, | ||||
|       Permission.viewQuotes, | ||||
|       Permission.createQuotes, | ||||
|       Permission.editQuotes, | ||||
|       Permission.viewInvoices, | ||||
|       Permission.createInvoices, | ||||
|       Permission.editInvoices, | ||||
|       Permission.viewUsers, | ||||
|       Permission.editUsers, | ||||
|       Permission.deleteUsers, | ||||
|       Permission.viewClients, | ||||
|       Permission.editClients, | ||||
|       Permission.deleteClients, | ||||
|     }, | ||||
|   ); | ||||
|  | ||||
|   static const crew = Role( | ||||
|     name: 'CREW', | ||||
|     permissions: { | ||||
|       // Permissions limitées pour l'équipe | ||||
|       Permission.viewAssignedEvents, | ||||
|       Permission.viewClients, | ||||
|     }, | ||||
|   ); | ||||
|  | ||||
|   static Role fromString(String roleName) { | ||||
|     switch (roleName.toUpperCase()) { | ||||
|       case 'ADMIN': | ||||
|         return admin; | ||||
|       case 'CREW': | ||||
|         return crew; | ||||
|       default: | ||||
|         return crew; // Par défaut, on donne les permissions minimales | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   static List<Role> values = [admin, crew]; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user