#!/usr/bin/env python3 """ Script pour créer les utilisateurs Odoo pour le TP Covoit'Ouest """ import xmlrpc.client # Configuration url = 'http://localhost:8069' db = 'covoiturage_db' username = 'admin' password = 'admin' # Connexion à Odoo common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url)) uid = common.authenticate(db, username, password, {}) if not uid: print("Erreur: Impossible de se connecter à Odoo") exit(1) print(f"Connecté en tant qu'utilisateur ID: {uid}") # Accès aux modèles models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url)) # Rechercher les groupes nécessaires # Groups pour Sales (Ventes) sale_user_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'User: Own Documents Only')]]) sale_manager_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Administrator')]]) # Groups pour Account (Facturation) account_user_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Billing')]]) account_manager_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Billing Manager')]]) # Créer l'utilisateur "Gestionnaire Trajets" print("\n=== Création de l'utilisateur Gestionnaire Trajets ===") try: # Vérifier si l'utilisateur existe déjà existing_user = models.execute_kw(db, uid, password, 'res.users', 'search', [[('login', '=', 'gestionnaire.trajets')]]) if existing_user: print("L'utilisateur 'gestionnaire.trajets' existe déjà") user_trajets_id = existing_user[0] else: user_trajets_id = models.execute_kw(db, uid, password, 'res.users', 'create', [{ 'name': 'Gestionnaire Trajets', 'login': 'gestionnaire.trajets', 'password': 'trajets123', 'email': 'trajets@covoiturage.fr', 'groups_id': [(6, 0, sale_user_group + sale_manager_group)] }]) print(f"Utilisateur créé avec l'ID: {user_trajets_id}") print(f"Login: gestionnaire.trajets") print(f"Mot de passe: trajets123") except Exception as e: print(f"Erreur lors de la création: {e}") # Créer l'utilisateur "Gestionnaire Finance" print("\n=== Création de l'utilisateur Gestionnaire Finance ===") try: # Vérifier si l'utilisateur existe déjà existing_user = models.execute_kw(db, uid, password, 'res.users', 'search', [[('login', '=', 'gestionnaire.finance')]]) if existing_user: print("L'utilisateur 'gestionnaire.finance' existe déjà") user_finance_id = existing_user[0] else: user_finance_id = models.execute_kw(db, uid, password, 'res.users', 'create', [{ 'name': 'Gestionnaire Finance', 'login': 'gestionnaire.finance', 'password': 'finance123', 'email': 'finance@covoiturage.fr', 'groups_id': [(6, 0, account_user_group + account_manager_group)] }]) print(f"Utilisateur créé avec l'ID: {user_finance_id}") print(f"Login: gestionnaire.finance") print(f"Mot de passe: finance123") except Exception as e: print(f"Erreur lors de la création: {e}") print("\n=== Résumé des utilisateurs créés ===") print("1. Admin (déjà existant)") print(" Login: admin") print(" Mot de passe: admin") print("\n2. Gestionnaire Trajets") print(" Login: gestionnaire.trajets") print(" Mot de passe: trajets123") print(" Rôle: Gestion des trajets et réservations (Sales)") print("\n3. Gestionnaire Finance") print(" Login: gestionnaire.finance") print(" Mot de passe: finance123") print(" Rôle: Gestion de la facturation et des paiements (Account)")