mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-13 19:44:21 +00:00
a07b2f4677
# 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
201 lines
3.7 KiB
Go
201 lines
3.7 KiB
Go
package domain
|
|
|
|
type NextStep interface {
|
|
Type() NextStepType
|
|
}
|
|
|
|
type NextStepType int32
|
|
|
|
const (
|
|
NextStepUnspecified NextStepType = iota
|
|
NextStepLogin
|
|
NextStepUserSelection
|
|
NextStepInitUser
|
|
NextStepPassword
|
|
NextStepChangePassword
|
|
NextStepInitPassword
|
|
NextStepVerifyEmail
|
|
NextStepMFAPrompt
|
|
NextStepMFAVerify
|
|
NextStepRedirectToCallback
|
|
NextStepChangeUsername
|
|
NextStepLinkUsers
|
|
NextStepExternalNotFoundOption
|
|
NextStepExternalLogin
|
|
NextStepGrantRequired
|
|
NextStepPasswordless
|
|
NextStepPasswordlessRegistrationPrompt
|
|
NextStepRegistration
|
|
NextStepProjectRequired
|
|
NextStepRedirectToExternalIDP
|
|
NextStepLoginSucceeded
|
|
NextStepVerifyInvite
|
|
)
|
|
|
|
type LoginStep struct{}
|
|
|
|
func (s *LoginStep) Type() NextStepType {
|
|
return NextStepLogin
|
|
}
|
|
|
|
type RegistrationStep struct{}
|
|
|
|
func (s *RegistrationStep) Type() NextStepType {
|
|
return NextStepRegistration
|
|
}
|
|
|
|
type SelectUserStep struct {
|
|
Users []UserSelection
|
|
}
|
|
|
|
func (s *SelectUserStep) Type() NextStepType {
|
|
return NextStepUserSelection
|
|
}
|
|
|
|
type UserSelection struct {
|
|
UserID string
|
|
UserName string
|
|
DisplayName string
|
|
LoginName string
|
|
UserSessionState UserSessionState
|
|
SelectionPossible bool
|
|
AvatarKey string
|
|
ResourceOwner string
|
|
}
|
|
|
|
type UserSessionState int32
|
|
|
|
const (
|
|
UserSessionStateActive UserSessionState = iota
|
|
UserSessionStateTerminated
|
|
)
|
|
|
|
type RedirectToExternalIDPStep struct{}
|
|
|
|
func (s *RedirectToExternalIDPStep) Type() NextStepType {
|
|
return NextStepRedirectToExternalIDP
|
|
}
|
|
|
|
type InitUserStep struct {
|
|
PasswordSet bool
|
|
}
|
|
|
|
func (s *InitUserStep) Type() NextStepType {
|
|
return NextStepInitUser
|
|
}
|
|
|
|
type ExternalNotFoundOptionStep struct{}
|
|
|
|
func (s *ExternalNotFoundOptionStep) Type() NextStepType {
|
|
return NextStepExternalNotFoundOption
|
|
}
|
|
|
|
type PasswordStep struct{}
|
|
|
|
func (s *PasswordStep) Type() NextStepType {
|
|
return NextStepPassword
|
|
}
|
|
|
|
type ExternalLoginStep struct {
|
|
SelectedIDPConfigID string
|
|
}
|
|
|
|
func (s *ExternalLoginStep) Type() NextStepType {
|
|
return NextStepExternalLogin
|
|
}
|
|
|
|
type PasswordlessStep struct {
|
|
PasswordSet bool
|
|
}
|
|
|
|
func (s *PasswordlessStep) Type() NextStepType {
|
|
return NextStepPasswordless
|
|
}
|
|
|
|
type PasswordlessRegistrationPromptStep struct{}
|
|
|
|
func (s *PasswordlessRegistrationPromptStep) Type() NextStepType {
|
|
return NextStepPasswordlessRegistrationPrompt
|
|
}
|
|
|
|
type ChangePasswordStep struct {
|
|
Expired bool
|
|
}
|
|
|
|
func (s *ChangePasswordStep) Type() NextStepType {
|
|
return NextStepChangePassword
|
|
}
|
|
|
|
type InitPasswordStep struct{}
|
|
|
|
func (s *InitPasswordStep) Type() NextStepType {
|
|
return NextStepInitPassword
|
|
}
|
|
|
|
type ChangeUsernameStep struct{}
|
|
|
|
func (s *ChangeUsernameStep) Type() NextStepType {
|
|
return NextStepChangeUsername
|
|
}
|
|
|
|
type VerifyEMailStep struct {
|
|
InitPassword bool
|
|
}
|
|
|
|
func (s *VerifyEMailStep) Type() NextStepType {
|
|
return NextStepVerifyEmail
|
|
}
|
|
|
|
type MFAPromptStep struct {
|
|
Required bool
|
|
MFAProviders []MFAType
|
|
}
|
|
|
|
func (s *MFAPromptStep) Type() NextStepType {
|
|
return NextStepMFAPrompt
|
|
}
|
|
|
|
type MFAVerificationStep struct {
|
|
MFAProviders []MFAType
|
|
}
|
|
|
|
func (s *MFAVerificationStep) Type() NextStepType {
|
|
return NextStepMFAVerify
|
|
}
|
|
|
|
type LinkUsersStep struct{}
|
|
|
|
func (s *LinkUsersStep) Type() NextStepType {
|
|
return NextStepLinkUsers
|
|
}
|
|
|
|
type GrantRequiredStep struct{}
|
|
|
|
func (s *GrantRequiredStep) Type() NextStepType {
|
|
return NextStepGrantRequired
|
|
}
|
|
|
|
type ProjectRequiredStep struct{}
|
|
|
|
func (s *ProjectRequiredStep) Type() NextStepType {
|
|
return NextStepProjectRequired
|
|
}
|
|
|
|
type RedirectToCallbackStep struct{}
|
|
|
|
func (s *RedirectToCallbackStep) Type() NextStepType {
|
|
return NextStepRedirectToCallback
|
|
}
|
|
|
|
type LoginSucceededStep struct{}
|
|
|
|
func (s *LoginSucceededStep) Type() NextStepType {
|
|
return NextStepLoginSucceeded
|
|
}
|
|
|
|
type VerifyInviteStep struct{}
|
|
|
|
func (s *VerifyInviteStep) Type() NextStepType {
|
|
return NextStepVerifyInvite
|
|
}
|