Refactorisation - Hook useApi centralisé (hooks/useApi.js) — supprime 200 lignes dupliquées - Helpers backend : get_or_404, _sync_domain_from_state, _sync_zone_from_state, _stable_id - Constantes de rôles RBAC dans auth.py (ROLE_GLOBAL_ADMIN, etc.) - handle_apply_domain découpé en _sync_domain_row / _sync_mailboxes / _sync_aliases (169→32 lignes) - oidc_callback découpé en _exchange_oidc_token / _provision_oidc_user (159→54 lignes) - Extraction composants : AccountModal, AliasModal, DnssecResultModal, DnssecManageModal - Suppression MailingLists.jsx (inutilisé) Corrections - Notification de connexion différée après validation TOTP - Création domaine : validation complète avant tout appel API (quota bal > quota global bloqué) - Création domaine : service Mail non tenté si création DNS échoue - Alias goto : validation email bloquante (frontend + backend) - Alias : vérification conflit avec compte mail existant (409) - delete_domain : notifie l'agent mail pour suppression dans netadmin_mail - Clés DNSSEC archivées dans key_dir/old/ avant activation et à la suppression de zone - _get_ds_records : exclut le dossier old/ (évitait la lecture de doublons) - Modale TOTP : remplace window.confirm par une vraie modale - "Mon compte" accessible sans rôle - Suppression champ "Serveur API" de la sidebar
19 lines
576 B
SQL
19 lines
576 B
SQL
-- Correction des comptes avec double domaine dans netadmin_mail
|
|
-- Exemple: "asterisk@infolix.fr@infolix.fr" → "asterisk@infolix.fr"
|
|
-- Exécuter sur la base netadmin_mail
|
|
|
|
-- Vérifier d'abord
|
|
SELECT username FROM mailbox WHERE username LIKE '%@%@%';
|
|
|
|
-- Corriger
|
|
UPDATE mailbox
|
|
SET username = CONCAT(
|
|
SUBSTRING_INDEX(username, '@', 1), -- partie locale (avant premier @)
|
|
'@',
|
|
SUBSTRING_INDEX(username, '@', -1) -- domaine (après dernier @)
|
|
)
|
|
WHERE username LIKE '%@%@%';
|
|
|
|
-- Vérifier le résultat
|
|
SELECT username FROM mailbox WHERE username LIKE '%@%@%';
|