mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-08 04:23:09 +00:00
feat(login): default to user selection, take login_hint into account (#350)
* feat(login): default to user selection instead of login, take login_hint into account * fix: proper error message when user (and other objects) not found (#337) * fix: proper error message when user not found by loginname * add more not found and fix some typos * feat: usergrant (#348) * fix: add needed permissions * feat: search project/projectgrant user grants * fix: no zitadel permissions * fix: queries length * feat: add get my password policy (#346) * feat: add get my password policy * fix: failed merges * chore(deps): bump contrib.go.opencensus.io/exporter/stackdriver (#343) Bumps [contrib.go.opencensus.io/exporter/stackdriver](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver) from 0.13.1 to 0.13.2. - [Release notes](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/releases) - [Commits](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/compare/v0.13.1...v0.13.2) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: remove phone (#349) * feat: remove phone number * feat: remove phone number tests * feat: remove phone number tests * fix: regenerate protos * fix(console): distinct user grant searches and creates, project grant member edit, import cleanup (#342) * project grant member edit * project grant member dialog, import cleanup * readd project roles * user login-methods cleanup * fix sw config, user grant context * delete user grants, context for creation, search * contributor box shadow * password to detail view * user detail notification * lint Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Max Peintner <max@caos.ch>
This commit is contained in:
@@ -72,6 +72,10 @@ func (repo *AuthRequestRepo) CreateAuthRequest(ctx context.Context, request *mod
|
||||
return nil, err
|
||||
}
|
||||
request.Audience = ids
|
||||
if request.LoginHint != "" {
|
||||
err = repo.checkLoginName(request, request.LoginHint)
|
||||
logging.LogWithFields("EVENT-aG311", "login name", request.LoginHint, "id", request.ID, "applicationID", request.ApplicationID).Debug("login hint invalid")
|
||||
}
|
||||
err = repo.AuthRequests.SaveAuthRequest(ctx, request)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -118,11 +122,10 @@ func (repo *AuthRequestRepo) CheckLoginName(ctx context.Context, id, loginName s
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
user, err := repo.View.UserByLoginName(loginName)
|
||||
err = repo.checkLoginName(request, loginName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
request.SetUserInfo(user.ID, loginName, user.ResourceOwner)
|
||||
return repo.AuthRequests.UpdateAuthRequest(ctx, request)
|
||||
}
|
||||
|
||||
@@ -174,6 +177,15 @@ func (repo *AuthRequestRepo) getAuthRequest(ctx context.Context, id string, chec
|
||||
return request, nil
|
||||
}
|
||||
|
||||
func (repo *AuthRequestRepo) checkLoginName(request *model.AuthRequest, loginName string) error {
|
||||
user, err := repo.View.UserByLoginName(loginName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
request.SetUserInfo(user.ID, loginName, user.ResourceOwner)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthRequest, checkLoggedIn bool) ([]model.NextStep, error) {
|
||||
if request == nil {
|
||||
return nil, errors.ThrowInvalidArgument(nil, "EVENT-ds27a", "Errors.Internal")
|
||||
@@ -184,12 +196,14 @@ func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthR
|
||||
}
|
||||
if request.UserID == "" {
|
||||
steps = append(steps, &model.LoginStep{})
|
||||
if request.Prompt == model.PromptSelectAccount {
|
||||
if request.Prompt == model.PromptSelectAccount || request.Prompt == model.PromptUnspecified {
|
||||
users, err := repo.usersForUserSelection(request)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
steps = append(steps, &model.SelectUserStep{Users: users})
|
||||
if len(users) > 0 || request.Prompt == model.PromptSelectAccount {
|
||||
steps = append(steps, &model.SelectUserStep{Users: users})
|
||||
}
|
||||
}
|
||||
return steps, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user