> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/on-premises/pt/gestao-de-utilizadores-e-projetos/user-management/username-migration.md).

# Migração de nomes de utilizador

## Migração de nomes de utilizador

Do ponto de vista do início de sessão, o identificador principal de um utilizador é o seu endereço de email. Se estiver a migrar de autenticação local para SSO ou de um IdP para outro, poderá ser necessário atualizar os endereços de email dos utilizadores.

Para ajudar com isto, é fornecido um script que irá migrar os emails dos utilizadores utilizando um ficheiro CSV com o seguinte formato:

`oldEmail,newEmail`

Após realizar algumas verificações de validação, o script irá percorrer o ficheiro CSV e atualizar os endereços de email dos utilizadores de `oldEmail` para `newEmail`.

### **Validação**

Antes de executar a migração, o `<csv_file>` será verificado para garantir que:

* Em cada linha, tanto o `oldEmail` como o `newEmail` são endereços de email válidos
* Não existem entradas duplicadas; por exemplo, não está a tentar atualizar utilizadores diferentes para o mesmo novo endereço de email ou está a tentar atualizar a mesma conta de utilizador com um endereço de email já utilizado

### **Utilização** <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 %}

### **Opções** <a href="#flags" id="flags"></a>

| Nome               | Descrição                                                                                                                                                                                                                                                                                                |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>A inclusão da <code>--commit</code> flag irá efetivamente executar a migração. Quando omitida, a migração ocorrerá em modo de simulação, em que não são feitas alterações, mas a validação continua a ser realizada.<br><br><strong>Predefinição</strong>:<code>false</code></p>                      |
| `--continue`       | O `--continue` flag irá continuar o processo de migração se o endereço de email na conta de utilizador já tiver sido atualizado                                                                                                                                                                          |
| `--ignore-missing` | O `--ignore-missing` flag irá continuar o processo de migração se uma conta de utilizador não for encontrada                                                                                                                                                                                             |
| `--admin-id`       | O `--admin-id` deve ser definido com o ID do Administrador que está a executar a migração e será usado para entradas no registo de auditoria. Vá para **Administração** > **Gerir utilizadores** e procure o seu endereço de email e clique no primeiro resultado para encontrar o seu ID de utilizador. |
| `<csv_file>`       | O `<csv_file>` é o ficheiro com os endereços de email antigos e novos em                                                                                                                                                                                                                                 |

### **Conclusão** <a href="#completion" id="completion"></a>

Ao executar o script de migração, dependendo das flags que escolheu, será determinado se um erro é registado na consola e depois continua, ou registado na consola e termina. Se o script terminar prematuramente devido a um erro, sairá com o código 1 para indicar que não teve sucesso.

Após a conclusão da migração, o script irá registar na consola o número de atualizações bem-sucedidas, falhadas e ignoradas. Se a migração for concluída com sucesso, sairá com o código 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://ayakaleaf-pro.ayaka.space/on-premises/pt/gestao-de-utilizadores-e-projetos/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.
