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()) {
|
@if (showUserTypeColumn()) {
|
||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
}
|
}
|
||||||
<!-- Colonne Merchant Partner pour la vue admin -->
|
|
||||||
@if (showMerchantPartnerColumn()) {
|
|
||||||
<th>Merchant Partner</th>
|
|
||||||
}
|
|
||||||
<th (click)="sort('username')" class="cursor-pointer">
|
<th (click)="sort('username')" class="cursor-pointer">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<span>Utilisateur</span>
|
<span>Utilisateur</span>
|
||||||
@ -272,25 +268,6 @@
|
|||||||
</span>
|
</span>
|
||||||
</td>
|
</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>
|
<td>
|
||||||
<div class="d-flex align-items-center">
|
<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">
|
<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>
|
||||||
</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) {
|
@if (newUser.role) {
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
@ -498,9 +383,6 @@
|
|||||||
• Type d'utilisateur : HUB<br>
|
• Type d'utilisateur : HUB<br>
|
||||||
• Créé par : Utilisateur courant<br>
|
• Créé par : Utilisateur courant<br>
|
||||||
• Votre rôle : {{ currentUserRole || 'Non défini' }}
|
• Votre rôle : {{ currentUserRole || 'Non défini' }}
|
||||||
@if (newUser.role === UserRole.DCB_PARTNER) {
|
|
||||||
<br>• Un marchand sera créé avec cet utilisateur
|
|
||||||
}
|
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user