Use OAuth avatar to update default avatar.

This commit is contained in:
Yang Luo
2021-06-21 00:54:07 +08:00
parent 68018c6d12
commit 54e97d57bf
2 changed files with 5 additions and 4 deletions

View File

@ -183,6 +183,7 @@ func (c *ApiController) Login() {
resp = c.HandleLoggedIn(application, user, &form)
}
} else if form.Provider != "" {
organization := object.GetOrganization(fmt.Sprintf("%s/%s", "admin", form.Organization))
application := object.GetApplication(fmt.Sprintf("admin/%s", form.Application))
provider := object.GetProvider(fmt.Sprintf("admin/%s", form.Provider))
providerItem := application.GetProviderItem(provider.Name)
@ -287,7 +288,7 @@ func (c *ApiController) Login() {
object.AddUser(user)
// sync info from 3rd-party if possible
object.SetUserOAuthProperties(user, provider.Type, userInfo)
object.SetUserOAuthProperties(organization, user, provider.Type, userInfo)
object.LinkUserAccount(user, provider.Type, userInfo.Id)
@ -317,7 +318,7 @@ func (c *ApiController) Login() {
user := object.GetUser(userId)
// sync info from 3rd-party if possible
object.SetUserOAuthProperties(user, provider.Type, userInfo)
object.SetUserOAuthProperties(organization, user, provider.Type, userInfo)
isLinked := object.LinkUserAccount(user, provider.Type, userInfo.Id)
if isLinked {

View File

@ -104,7 +104,7 @@ func setUserProperty(user *User, field string, value string) {
}
}
func SetUserOAuthProperties(user *User, providerType string, userInfo *idp.UserInfo) bool {
func SetUserOAuthProperties(organization *Organization, user *User, providerType string, userInfo *idp.UserInfo) bool {
if userInfo.Id != "" {
propertyName := fmt.Sprintf("oauth_%s_id", providerType)
setUserProperty(user, propertyName, userInfo.Id)
@ -130,7 +130,7 @@ func SetUserOAuthProperties(user *User, providerType string, userInfo *idp.UserI
if userInfo.AvatarUrl != "" {
propertyName := fmt.Sprintf("oauth_%s_avatarUrl", providerType)
setUserProperty(user, propertyName, userInfo.AvatarUrl)
if user.Avatar == "" {
if user.Avatar == "" || user.Avatar == organization.DefaultAvatar {
user.Avatar = userInfo.AvatarUrl
}
}