# Component Methods — SlpModularCms.Api Dit document specificeert de belangrijkste methoden en interfaces per component. ## 1. IModule Interface (Core) Alle modules moeten deze interface implementeren om geregistreerd te kunnen worden. - `void RegisterServices(IServiceCollection services)` - Registreert module-specifieke services in de DI container. - `void ConfigureMiddleware(IApplicationBuilder app)` - Configureert module-specifieke middleware (optioneel). ## 2. IAvailabilityService (Core Interface, Availability Implementatie) Interface voor de beschikbaarheidscontrole. - `Task IsAvailableAsync()` - Retourneert of het systeem/module beschikbaar is. - `Task GetDetailsAsync()` - Geeft gedetailleerde statusinformatie terug (toekomstig). ## 3. IAuthService (Identity - Core) Afhandeling van authenticatie. - `Task LoginAsync(LoginRequest request)` - Valideert credentials en geeft tokens terug. - `Task RefreshTokenAsync(RefreshRequest request)` - Vernieuwt een sessie met een refresh token. ## 4. IUserService (Identity - Core) Beheer van gebruikers accounts. - `Task CreateUserAsync(CreateUserRequest request)` - Maakt een nieuwe gebruiker aan (alleen voor Admin/Owner). - `Task> GetAllUsersAsync()` - Lijst met alle gebruikers (alleen voor Admin/Owner). - `Task UpdateUserRoleAsync(Guid userId, string newRole)` - Wijzigt een rol (met hiërarchische validatie). - `Task DeleteUserAsync(Guid userId)` - Verwijdert een gebruiker (voorkomt verwijdering Owner). - `Task SetModulePermissionAsync(Guid userId, string moduleName, bool hasAccess)` - Kent module-specifieke rechten toe aan een gebruiker. ## 5. Authorization Handlers (Identity - Core) Technisch mechanisme voor RBAC. - `HandleRequirementAsync(AuthorizationHandlerContext context, HierarchyRequirement requirement)` - Valideert of de gebruiker de vereiste rol heeft op basis van de hiërarchie (Owner > Admin > User).