fix(admin) : recherche insensible a la casse + label permissions dans filtres
SearchFilter partial etait case-sensitive en PostgreSQL : taper "ad" ne
trouvait pas "Administrateur". Passage en strategy `ipartial` (ILIKE) sur
tous les champs texte filtrables :
- Role.label / Role.code
- Site.name / Site.city / Site.postalCode
- User.username
Les filtres exacts sur relations (rbacRoles.code, sites.name,
permissions.code) restent en `exact` — alimentes par des <select> donc
casse maitrisee.
Test de non-regression ajoute : chercher "ad" (minuscule) trouve bien
"Administrateur" (A majuscule) sur /api/roles?label=ad.
UI select permissions du filtre /admin/roles : affiche `perm.label`
("Gerer les roles et permissions") au lieu de `perm.code`
("core.roles.manage"). Value reste sur `code` pour le backend. Tri
par label pour coherence alphabetique avec l'affichage.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -55,7 +55,7 @@
|
||||
:key="perm.id"
|
||||
:value="perm.code"
|
||||
>
|
||||
{{ perm.code }}
|
||||
{{ perm.label }}
|
||||
</option>
|
||||
</select>
|
||||
</template>
|
||||
@@ -149,8 +149,11 @@ async function loadPermissions(): Promise<void> {
|
||||
{ itemsPerPage: 999, orphan: false },
|
||||
{ toast: false },
|
||||
)
|
||||
// Tri par label pour coherence avec l'affichage du <option> : l'user
|
||||
// lit le label (ex: "Gerer les roles et permissions"), donc l'ordre
|
||||
// alphabetique doit etre base sur ce qu'il voit, pas sur le code.
|
||||
allPermissions.value = (data.member ?? []).sort(
|
||||
(a, b) => a.code.localeCompare(b.code),
|
||||
(a, b) => a.label.localeCompare(b.label),
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user