fix(openid): make sure usernames with spaces work
This commit is contained in:
parent
225d65268d
commit
ab2eda4bd5
@ -21,6 +21,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"code.vikunja.io/web/handler"
|
"code.vikunja.io/web/handler"
|
||||||
|
|
||||||
@ -216,7 +217,7 @@ func getOrCreateUser(s *xorm.Session, cl *claims, issuer, subject string) (u *us
|
|||||||
// If no user exists, create one with the preferred username if it is not already taken
|
// If no user exists, create one with the preferred username if it is not already taken
|
||||||
if user.IsErrUserDoesNotExist(err) {
|
if user.IsErrUserDoesNotExist(err) {
|
||||||
uu := &user.User{
|
uu := &user.User{
|
||||||
Username: cl.PreferredUsername,
|
Username: strings.ReplaceAll(cl.PreferredUsername, " ", "-"),
|
||||||
Email: cl.Email,
|
Email: cl.Email,
|
||||||
Name: cl.Name,
|
Name: cl.Name,
|
||||||
Status: user.StatusActive,
|
Status: user.StatusActive,
|
||||||
@ -234,7 +235,7 @@ func getOrCreateUser(s *xorm.Session, cl *claims, issuer, subject string) (u *us
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// If their preferred username is already taken, create some random one from the email and subject
|
// If their preferred username is already taken, generate a random one
|
||||||
if user.IsErrUsernameExists(err) {
|
if user.IsErrUsernameExists(err) {
|
||||||
uu.Username = petname.Generate(3, "-")
|
uu.Username = petname.Generate(3, "-")
|
||||||
u, err = user.CreateUser(s, uu)
|
u, err = user.CreateUser(s, uu)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user