Use DisplayName() instead of FullName in Oauth provider (#19991)
Use DisplayName() in Oauth as this provides a fallback if FullName is not set. Closes #19382
This commit is contained in:
parent
e3e06d13af
commit
9068c784c8
2 changed files with 20 additions and 1 deletions
|
@ -215,7 +215,7 @@ func newAccessTokenResponse(ctx stdContext.Context, grant *auth.OAuth2Grant, ser
|
||||||
Nonce: grant.Nonce,
|
Nonce: grant.Nonce,
|
||||||
}
|
}
|
||||||
if grant.ScopeContains("profile") {
|
if grant.ScopeContains("profile") {
|
||||||
idToken.Name = user.FullName
|
idToken.Name = user.GetDisplayName()
|
||||||
idToken.PreferredUsername = user.Name
|
idToken.PreferredUsername = user.Name
|
||||||
idToken.Profile = user.HTMLURL()
|
idToken.Profile = user.HTMLURL()
|
||||||
idToken.Picture = user.AvatarLink()
|
idToken.Picture = user.AvatarLink()
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/services/auth/source/oauth2"
|
"code.gitea.io/gitea/services/auth/source/oauth2"
|
||||||
|
|
||||||
"github.com/golang-jwt/jwt/v4"
|
"github.com/golang-jwt/jwt/v4"
|
||||||
|
@ -64,6 +65,24 @@ func TestNewAccessTokenResponse_OIDCToken(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, grants, 1)
|
assert.Len(t, grants, 1)
|
||||||
|
|
||||||
|
// Scopes: openid profile email
|
||||||
|
oidcToken = createAndParseToken(t, grants[0])
|
||||||
|
assert.Equal(t, user.Name, oidcToken.Name)
|
||||||
|
assert.Equal(t, user.Name, oidcToken.PreferredUsername)
|
||||||
|
assert.Equal(t, user.HTMLURL(), oidcToken.Profile)
|
||||||
|
assert.Equal(t, user.AvatarLink(), oidcToken.Picture)
|
||||||
|
assert.Equal(t, user.Website, oidcToken.Website)
|
||||||
|
assert.Equal(t, user.UpdatedUnix, oidcToken.UpdatedAt)
|
||||||
|
assert.Equal(t, user.Email, oidcToken.Email)
|
||||||
|
assert.Equal(t, user.IsActive, oidcToken.EmailVerified)
|
||||||
|
|
||||||
|
// set DefaultShowFullName to true
|
||||||
|
oldDefaultShowFullName := setting.UI.DefaultShowFullName
|
||||||
|
setting.UI.DefaultShowFullName = true
|
||||||
|
defer func() {
|
||||||
|
setting.UI.DefaultShowFullName = oldDefaultShowFullName
|
||||||
|
}()
|
||||||
|
|
||||||
// Scopes: openid profile email
|
// Scopes: openid profile email
|
||||||
oidcToken = createAndParseToken(t, grants[0])
|
oidcToken = createAndParseToken(t, grants[0])
|
||||||
assert.Equal(t, user.FullName, oidcToken.Name)
|
assert.Equal(t, user.FullName, oidcToken.Name)
|
||||||
|
|
Reference in a new issue