From de556206ec3504ca1c275c19176c03f80c027032 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Wed, 18 Sep 2019 23:55:54 +0800 Subject: [PATCH] feature: keystone v3 auth response carry user's displayname/email/mobile --- docs/schemas/auth.yaml | 21 ++++++++++++++++++++- pkg/apis/identity/usrext.go | 4 ++++ pkg/keystone/models/users.go | 3 +++ pkg/keystone/tokens/token.go | 3 +++ pkg/mcclient/token3.go | 4 ++++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/schemas/auth.yaml b/docs/schemas/auth.yaml index 129862bf32..5a2c7cadcd 100644 --- a/docs/schemas/auth.yaml +++ b/docs/schemas/auth.yaml @@ -260,7 +260,26 @@ TokenV3: $ref: './roleassignments.yaml#/DomainObject' user: type: object - $ref: './roleassignments.yaml#/DomainObject' + properties: + id: + type: string + description: 用户ID + name: + type: string + description: 用户名称 + displayname: + type: string + description: 用户显示名称 + email: + type: string + description: 用户的电子邮箱 + mobile: + type: string + description: 用户的手机号 + domain: + type: object + description: 资源归属的域信息 + $ref: './roleassignments.yaml#/Domain' policies: type: object $ref: './roleassignments.yaml#/PolicyObject' diff --git a/pkg/apis/identity/usrext.go b/pkg/apis/identity/usrext.go index 7cf6258efc..5fffeeaf42 100644 --- a/pkg/apis/identity/usrext.go +++ b/pkg/apis/identity/usrext.go @@ -25,6 +25,10 @@ type SUserExtended struct { LastActiveAt time.Time DomainId string + Displayname string + Email string + Mobile string + LocalId int LocalName string DomainName string diff --git a/pkg/keystone/models/users.go b/pkg/keystone/models/users.go index 8c98d926fa..bdf1eabb34 100644 --- a/pkg/keystone/models/users.go +++ b/pkg/keystone/models/users.go @@ -236,6 +236,9 @@ func (manager *SUserManager) FetchUserExtended(userId, userName, domainId, domai q := users.Query( users.Field("id"), users.Field("name"), + users.Field("displayname"), + users.Field("email"), + users.Field("mobile"), users.Field("enabled"), users.Field("default_project_id"), users.Field("created_at"), diff --git a/pkg/keystone/tokens/token.go b/pkg/keystone/tokens/token.go index 5a7fd5b6b8..33402d5a68 100644 --- a/pkg/keystone/tokens/token.go +++ b/pkg/keystone/tokens/token.go @@ -255,6 +255,9 @@ func (t *SAuthToken) getTokenV3( token.Token.Methods = []string{t.Method} token.Token.User.Id = user.Id token.Token.User.Name = user.Name + token.Token.User.Displayname = user.Displayname + token.Token.User.Email = user.Email + token.Token.User.Mobile = user.Mobile token.Token.User.Domain.Id = user.DomainId token.Token.User.Domain.Name = user.DomainName token.Token.Context = t.Context diff --git a/pkg/mcclient/token3.go b/pkg/mcclient/token3.go index 184f33d318..10dc1b0517 100644 --- a/pkg/mcclient/token3.go +++ b/pkg/mcclient/token3.go @@ -60,6 +60,10 @@ type KeystoneUserV3 struct { Name string Domain KeystoneDomainV3 Password_expires_at time.Time + + Displayname string + Email string + Mobile string } type KeystoneServiceCatalogV3 []KeystoneServiceV3