PnX-SI/UsersHub

Ajout de contraintes "unique" sur les champs "identifiant" et "email" de "t_roles"

jpm-cbna opened this issue · 1 comments

Actuellement, les interfaces de GeoNature de création de compte empêchent la création de compte dont l'email ou l'identifiant seraient en doublon.
Par contre, dans la base de données rien n'empêche d'intégrer des utilisateurs dans la table "t_roles" avec un email ou identifiant déjà existant.
Il faudrait donc ajouter 2 contraintes d'unicité, une sur le champ "identifiant" et une sur le champ "email". Par contre, pour les utilisateurs sans identifiant ou email, il est nécessaire de forcer la valeur du champ à NULL sinon la contrainte peut bloquer.
A noter aussi que pour ajouter ces contraintes, la table "t_roles" ne doit pas être en état "lock". La requête ci-dessous permet d'afficher toutes les tables avec un statut "lock":

SELECT t.schemaname,t.relname,l.locktype,l.page,l.virtualtransaction,l.pid,l.mode,l.granted
FROM pg_locks l JOIN pg_stat_all_tables t ON l.relation = t.relid
WHERE t.schemaname <> 'utilisateur'::name AND t.schemaname <> 'pg_catalog'::name
ORDER BY t.schemaname, t.relname ;

La présence de doublon pour les champs identifiant et email empêche la création de compte et surtout le renouvellement du mot de passe ce qui est vraiment problématique.

Duplicate #122 pour les emails.