Files
slp-modular-cms/aidlc-docs/features/slp-modular-cms-api/inception/application-design/component-methods.md
T

48 lines
2.0 KiB
Markdown

# 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<bool> IsAvailableAsync()`
- Retourneert of het systeem/module beschikbaar is.
- `Task<AvailabilityDetails> GetDetailsAsync()`
- Geeft gedetailleerde statusinformatie terug (toekomstig).
## 3. IAuthService (Identity - Core)
Afhandeling van authenticatie.
- `Task<AuthResult> LoginAsync(LoginRequest request)`
- Valideert credentials en geeft tokens terug.
- `Task<AuthResult> RefreshTokenAsync(RefreshRequest request)`
- Vernieuwt een sessie met een refresh token.
## 4. IUserService (Identity - Core)
Beheer van gebruikers accounts.
- `Task<UserDto> CreateUserAsync(CreateUserRequest request)`
- Maakt een nieuwe gebruiker aan (alleen voor Admin/Owner).
- `Task<IEnumerable<UserDto>> 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).