feat: add DCB User Service API - Authentication system with KEYCLOAK - Modular architecture with services for each feature
This commit is contained in:
parent
822d349ffc
commit
7f26a4bdea
@ -229,10 +229,6 @@
|
||||
@if (showUserTypeColumn()) {
|
||||
<th>Type</th>
|
||||
}
|
||||
<!-- Colonne Merchant Partner pour la vue admin -->
|
||||
@if (showMerchantPartnerColumn()) {
|
||||
<th>Merchant Partner</th>
|
||||
}
|
||||
<th (click)="sort('username')" class="cursor-pointer">
|
||||
<div class="d-flex align-items-center">
|
||||
<span>Utilisateur</span>
|
||||
@ -272,25 +268,6 @@
|
||||
</span>
|
||||
</td>
|
||||
}
|
||||
<!-- Colonne Merchant Partner pour la vue admin -->
|
||||
@if (showMerchantPartnerColumn()) {
|
||||
<td>
|
||||
@if (user.merchantPartnerId) {
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="avatar-sm bg-secondary bg-opacity-10 rounded-circle d-flex align-items-center justify-content-center me-2">
|
||||
<ng-icon name="lucideBuilding" class="text-secondary fs-12"></ng-icon>
|
||||
</div>
|
||||
<div>
|
||||
<small class="text-muted font-monospace" [title]="user.merchantPartnerId">
|
||||
{{ user.merchantPartnerId.substring(0, 8) }}...
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
} @else {
|
||||
<span class="text-muted">-</span>
|
||||
}
|
||||
</td>
|
||||
}
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="avatar-sm bg-primary bg-opacity-10 rounded-circle d-flex align-items-center justify-content-center me-2">
|
||||
|
||||
@ -316,121 +316,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Informations de base du marchand (seulement pour DCB_PARTNER) -->
|
||||
@if (newUser.role === UserRole.DCB_PARTNER) {
|
||||
<div class="col-12 mt-4">
|
||||
<h6 class="border-bottom pb-2">
|
||||
<ng-icon name="lucideStore" class="me-2"></ng-icon>
|
||||
Informations de base du marchand
|
||||
</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">
|
||||
Nom du marchand <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="Ex: Boutique ABC"
|
||||
[(ngModel)]="newMerchant.name"
|
||||
name="merchantName"
|
||||
required
|
||||
[disabled]="creatingUser"
|
||||
#merchantName="ngModel"
|
||||
>
|
||||
@if (merchantName.invalid && merchantName.touched) {
|
||||
<div class="text-danger small">
|
||||
Le nom du marchand est requis
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Logo URL</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="https://exemple.com/logo.png"
|
||||
[(ngModel)]="newMerchant.logo"
|
||||
name="merchantLogo"
|
||||
[disabled]="creatingUser"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<label class="form-label">Description</label>
|
||||
<textarea
|
||||
class="form-control"
|
||||
placeholder="Description du marchand"
|
||||
[(ngModel)]="newMerchant.description"
|
||||
name="merchantDescription"
|
||||
[disabled]="creatingUser"
|
||||
rows="2"
|
||||
></textarea>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">
|
||||
Adresse <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="Adresse complète"
|
||||
[(ngModel)]="newMerchant.adresse"
|
||||
name="merchantAdresse"
|
||||
required
|
||||
[disabled]="creatingUser"
|
||||
#merchantAdresse="ngModel"
|
||||
>
|
||||
@if (merchantAdresse.invalid && merchantAdresse.touched) {
|
||||
<div class="text-danger small">
|
||||
L'adresse est requise
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">
|
||||
Téléphone <span class="text-danger">*</span>
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="+XX X XX XX XX XX"
|
||||
[(ngModel)]="newMerchant.phone"
|
||||
name="merchantPhone"
|
||||
required
|
||||
[disabled]="creatingUser"
|
||||
#merchantPhone="ngModel"
|
||||
>
|
||||
@if (merchantPhone.invalid && merchantPhone.touched) {
|
||||
<div class="text-danger small">
|
||||
Le téléphone est requis
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<!-- Avertissement pour les non-DCB_PARTNER -->
|
||||
@if (!canManageRoles) {
|
||||
<div class="col-12">
|
||||
<div class="alert alert-warning">
|
||||
<div class="d-flex align-items-center">
|
||||
<ng-icon name="lucideInfo" class="me-2"></ng-icon>
|
||||
<div>
|
||||
<small>
|
||||
<strong>Permissions limitées :</strong>
|
||||
Vous ne pouvez créer que des utilisateurs avec des rôles spécifiques.
|
||||
Seul un <strong>DCB Partner</strong> peut attribuer tous les rôles.
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (newUser.role) {
|
||||
<div class="col-12">
|
||||
<div class="alert alert-info">
|
||||
@ -498,9 +383,6 @@
|
||||
• Type d'utilisateur : HUB<br>
|
||||
• Créé par : Utilisateur courant<br>
|
||||
• Votre rôle : {{ currentUserRole || 'Non défini' }}
|
||||
@if (newUser.role === UserRole.DCB_PARTNER) {
|
||||
<br>• Un marchand sera créé avec cet utilisateur
|
||||
}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user