feat: invite user link (#8578)

# Which Problems Are Solved

As an administrator I want to be able to invite users to my application
with the API V2, some user data I will already prefil, the user should
add the authentication method themself (password, passkey, sso).

# How the Problems Are Solved

- A user can now be created with a email explicitly set to false.
- If a user has no verified email and no authentication method, an
`InviteCode` can be created through the User V2 API.
  - the code can be returned or sent through email
- additionally `URLTemplate` and an `ApplicatioName` can provided for
the email
- The code can be resent and verified through the User V2 API
- The V1 login allows users to verify and resend the code and set a
password (analog user initialization)
- The message text for the user invitation can be customized

# Additional Changes

- `verifyUserPasskeyCode` directly uses `crypto.VerifyCode` (instead of
`verifyEncryptedCode`)
- `verifyEncryptedCode` is removed (unnecessarily queried for the code
generator)

# Additional Context

- closes #8310
- TODO: login V2 will have to implement invite flow:
https://github.com/zitadel/typescript/issues/166
This commit is contained in:
Livio Spring
2024-09-11 12:53:55 +02:00
committed by GitHub
parent 02c78a19c6
commit a07b2f4677
114 changed files with 3898 additions and 293 deletions

View File

@@ -704,6 +704,13 @@ EventTypes:
check:
succeeded: Проверката за инициализация е успешна
failed: Проверката на инициализацията е неуспешна
invite:
code:
added: Генериран е код за покана
sent: Изпратен е код за покана
check:
succeeded: Проверката на поканата е успешна
failed: Проверката на поканата е неуспешна
username:
reserved: Потребителското име е запазено
released: Потребителското име е освободено

View File

@@ -685,6 +685,13 @@ EventTypes:
check:
succeeded: Kontrola inicializace byla úspěšná
failed: Kontrola inicializace selhala
invite:
code:
added: Vygenerován pozvánkový kód
sent: Pozvánkový kód byl odeslán
check:
succeeded: Kontrola pozvánky byla úspěšná
failed: Kontrola pozvánky selhala
username:
reserved: Uživatelské jméno rezervováno
released: Uživatelské jméno uvolněno

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Benutzerinitialisierung erfolgreich
failed: Benutzerinitialisierung fehlgeschlagen
invite:
code:
added: Einladungscode generiert
sent: Einladungscode gesendet
check:
succeeded: Einladungsprüfung erfolgreich
failed: Einladungsprüfung fehlgeschlagen
username:
reserved: Benutzername reserviert
released: Benutzername freigegeben

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Initialization check succeeded
failed: Initialization check failed
invite:
code:
added: Invitation code generated
sent: Invitation code sent
check:
succeeded: Invitation check succeeded
failed: Invitation check failed
username:
reserved: Username reserved
released: Username released

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Comprobación exitosa de la inicialización
failed: Fallo en la comprobación de la inicialización
invite:
code:
added: Código de invitación generado
sent: Código de invitación enviado
check:
succeeded: Comprobación de invitación correcta
failed: Comprobación de invitación fallida
username:
reserved: Nombre de usuario reservado
released: Nombre de usuario liberado

View File

@@ -685,6 +685,13 @@ EventTypes:
check:
succeeded: Vérification de l'initialisation réussie
failed: La vérification de l'initialisation a échoué
invite:
code:
added: Code d'invitation généré
sent: Code d'invitation envoyé
check:
succeeded: Vérification de l'invitation réussie
failed: Vérification de l'invitation échouée
username:
reserved: Nom d'utilisateur réservé
released: Nom d'utilisateur libéré

View File

@@ -680,6 +680,13 @@ EventTypes:
check:
succeeded: Pemeriksaan inisialisasi berhasil
failed: Pemeriksaan inisialisasi gagal
invite:
code:
added: Kode undangan dihasilkan
sent: Kode undangan dikirim
check:
succeeded: Pemeriksaan undangan berhasil
failed: Pemeriksaan undangan gagal
username:
reserved: Nama pengguna dicadangkan
released: Nama pengguna dirilis

View File

@@ -686,6 +686,13 @@ EventTypes:
check:
succeeded: Controllo dell'inizializzazione riuscito
failed: Controllo dell'inizializzazione fallito
invite:
code:
added: Codice invito generato
sent: Codice invito inviato
check:
succeeded: Controllo invito riuscito
failed: Controllo invito fallito
username:
reserved: Nome utente riservato
released: Nome utente rilasciato

View File

@@ -676,6 +676,13 @@ EventTypes:
check:
succeeded: 初期化チェックの成功
failed: 初期化チェックの失敗
invite:
code:
added: 招待コードが生成されました
sent: 招待コードが送信されました
check:
succeeded: 招待のチェックが成功しました
failed: 招待のチェックが失敗しました
username:
reserved: ユーザー名の予約
released: ユーザー名の解放

View File

@@ -686,6 +686,13 @@ EventTypes:
check:
succeeded: Проверката на иницијализацијата е успешна
failed: Проверката на иницијализацијата е неуспешна
invite:
code:
added: Генериран е код за покана
sent: Изпратен е код за покана
check:
succeeded: Проверката на поканата е успешна
failed: Проверката на поканата е неуспешна
username:
reserved: Корисничкото име е резервирано
released: Корисничкото име е ослободено

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Initialisatiecontrole geslaagd
failed: Initialisatiecontrole mislukt
invite:
code:
added: Uitnodigingscode gegenereerd
sent: Uitnodigingscode verzonden
check:
succeeded: Uitnodigingscontrole geslaagd
failed: Uitnodigingscontrole mislukt
username:
reserved: Gebruikersnaam gereserveerd
released: Gebruikersnaam vrijgegeven

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Sprawdzenie inicjalizacji zakończone powodzeniem
failed: Sprawdzenie inicjalizacji nie powiodło się
invite:
code:
added: Wygenerowano kod zaproszenia
sent: Kod zaproszenia został wysłany
check:
succeeded: Kontrola zaproszenia zakończona sukcesem
failed: Kontrola zaproszenia zakończona niepowodzeniem
username:
reserved: Zarezerwowano nazwę użytkownika
released: Zwolniono nazwę użytkownika

View File

@@ -682,6 +682,13 @@ EventTypes:
check:
succeeded: Verificação de inicialização bem-sucedida
failed: Verificação de inicialização falhou
invite:
code:
added: Código de convite gerado
sent: Código de convite enviado
check:
succeeded: Verificação do convite bem-sucedida
failed: Verificação do convite falhou
username:
reserved: Nome de usuário reservado
released: Nome de usuário liberado

View File

@@ -676,6 +676,13 @@ EventTypes:
check:
succeeded: Проверка инициализации прошла успешно
failed: Проверка инициализации не удалась
invite:
code:
added: Сгенерирован код приглашения
sent: Код приглашения отправлен
check:
succeeded: Проверка приглашения успешно завершена
failed: Проверка приглашения завершилась неудачно
username:
reserved: Имя пользователя зарезервировано
released: Имя пользователя опубликовано

View File

@@ -687,6 +687,13 @@ EventTypes:
check:
succeeded: Initialiseringskontroll lyckades
failed: Initialiseringskontroll misslyckades
invite:
code:
added: Inbjudningskod genererad
sent: Inbjudningskod skickad
check:
succeeded: Inbjudningskontroll lyckad
failed: Inbjudningskontroll misslyckad
username:
reserved: Användarnamn reserverat
released: Användarnamn släppt

View File

@@ -686,6 +686,13 @@ EventTypes:
check:
succeeded: 初始化检查成功
failed: 初始化检查失败
invite:
code:
added: 生成了邀请码
sent: 发送了邀请码
check:
succeeded: 邀请检查成功
failed: 邀请检查失败
username:
reserved: 保留用户名
released: 用户名已发布