=================
OAuth Multi Token
=================
Ce module est basé sur le module auth_oauth_multi_token développé par la communauté OCA.
Nous avons repris ce module et y avons appliqué plusieurs modifications et améliorations spécifiques :
Ajouts fonctionnels
Changements apportés sur 'OAuth2 Token':
- Champ active_token
Ajout d’un champ booléen active_token pour marquer un token comme actif/inactif.
Permet de désactiver un token sans le supprimer (meilleure traçabilité).
- Constante EMPTY_OAUTH_TOKEN
Nouvelle constante définie dans le modèle pour masquer visuellement les tokens invalidés.
Utilisée lors de la désactivation des tokens pour éviter la fuite de données sensibles.
- Réécriture de _oauth_user_tokens()
Cette méthode prend désormais en compte le champ active_token.
- Modification de _oauth_clear_token()
Le comportement précédent supprimait le token (unlink()).
Il est désormais désactivé (champ active_token = False) et anonymisé (oauth_access_token = EMPTY_OAUTH_TOKEN).
Avantage : préservation des données pour audit ou débogage.
- Ajout d'une interface de gestion des tokens dans la vue formulaire (auth.oauth.multi.token) :
Nouveau champ active_token ajouté à la vue pour permettre l’activation/désactivation manuelle des tokens depuis l’interface utilisateur.
Changements apportés sur 'Users':
- Champ oauth_access_token_ids
Champ One2many sur les tokens OAuth multiples (modifié : suppression de readonly et groups).
Permet une meilleure gestion côté interface utilisateur ou XML views.
- Méthode _auth_oauth_signin() surchargée
Sauvegarde l’access_token d'origine dans un nouveau champ access_token_multi pour ne pas écraser le oauth_access_token principal.
Crée un nouveau token actif (active_token = True) dans auth.oauth.multi.token à chaque connexion OAuth réussie.
Empêche la perte de session sur d’autres appareils.
- Méthode _check_credentials() modifiée
Ajoute la vérification du token dans les tokens actifs (active_token = True) en cas d’échec du contrôle classique.
Permet une authentification fluide multi-session même avec tokens périmés côté utilisateur (tant qu'ils sont actifs côté Odoo).