PnX-SI / UsersHub

Application web de gestion centralisée des utilisateurs
GNU General Public License v3.0
13 stars 24 forks source link

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

Open jpm-cbna opened 3 years ago

jpm-cbna commented 3 years ago

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.

camillemonchicourt commented 1 year ago

Duplicate https://github.com/PnX-SI/UsersHub/issues/122 pour les emails.