> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/fr/gestion-des-utilisateurs-et-des-projets/user-management/username-migration.md).

# Migration des noms d’utilisateur

## Migration des noms d’utilisateur

Du point de vue de la connexion, l’identifiant principal d’un utilisateur est son adresse e-mail. Si vous migrez d’une authentification locale vers le SSO ou d’un fournisseur d’identité (IdP) vers un autre, il peut être nécessaire de mettre à jour les adresses e-mail des utilisateurs.

Pour vous aider, un script est fourni afin de migrer les e-mails des utilisateurs à l’aide d’un fichier CSV au format suivant :

`oldEmail,newEmail`

Après avoir effectué quelques vérifications de validation, le script parcourra le fichier CSV et mettra à jour les adresses e-mail des utilisateurs de `oldEmail` à `newEmail`.

### **Validation**

Avant d’exécuter la migration, le `<csv_file>` sera vérifié pour s’assurer que :

* Pour chaque ligne, les deux `oldEmail` et `newEmail` sont des adresses e-mail valides
* il n’existe aucune entrée en double ; par exemple, vous n’essaiez pas de mettre à jour différents utilisateurs avec la même nouvelle adresse e-mail, ou vous n’essaiez pas de mettre à jour le même compte utilisateur avec une adresse e-mail déjà utilisée

### **Utilisation** <a href="#usage" id="usage"></a>

{% code overflow="wrap" %}

```bash
docker cp <csv_file> sharelatex:/overleaf/services/web/<csv_file> docker exec sharelatex /bin/bash -c "cd /overleaf/services/web;node ./modules/server-ce-scripts/scripts/migrate-user-emails.js [--commit] [--continue|--ignore-missing] [--admin-id=ADMIN_USER_ID] <csv_file>"
```

{% endcode %}

### **Options** <a href="#flags" id="flags"></a>

| Nom                | Description                                                                                                                                                                                                                                                                                                     |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>L’ajout de l’option <code>--commit</code> effectuera réellement la migration. Lorsqu’elle est omise, la migration s’exécutera en mode simulation, sans modification, mais la validation sera tout de même effectuée.<br><br><strong>Par défaut</strong>:<code>false</code></p>                               |
| `--continue`       | Le `--continue` L’option poursuivra le processus de migration si l’adresse e-mail d’un compte utilisateur a déjà été mise à jour                                                                                                                                                                                |
| `--ignore-missing` | Le `--ignore-missing` L’option poursuivra le processus de migration si un compte utilisateur n’a pas été trouvé                                                                                                                                                                                                 |
| `--admin-id`       | Le `--admin-id` doit être défini sur l’ID de l’administrateur qui effectue la migration et sera utilisé pour les entrées du journal d’audit. Rendez-vous sur **Admin** > **Gérer les utilisateurs** et recherchez votre adresse e-mail, puis cliquez sur le premier résultat pour trouver votre ID utilisateur. |
| `<csv_file>`       | Le `<csv_file>` est le fichier contenant les anciennes et les nouvelles adresses e-mail au format                                                                                                                                                                                                               |

### **Achèvement** <a href="#completion" id="completion"></a>

Pendant l’exécution du script de migration, selon les options que vous avez choisies, une erreur sera soit consignée dans la console puis le processus continuera, soit consignée dans la console puis le processus s’arrêtera. Si le script se termine prématurément en raison d’une erreur, il quittera avec le code 1 pour indiquer qu’il a échoué.

À la fin de la migration, le script consignera dans la console le nombre de mises à jour réussies, échouées et ignorées. Si la migration se termine avec succès, il quittera avec le code 0.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/fr/gestion-des-utilisateurs-et-des-projets/user-management/username-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
