mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 04:10:20 +08:00
Use OAuth avatar to update default avatar.
This commit is contained in:
@ -183,6 +183,7 @@ func (c *ApiController) Login() {
|
|||||||
resp = c.HandleLoggedIn(application, user, &form)
|
resp = c.HandleLoggedIn(application, user, &form)
|
||||||
}
|
}
|
||||||
} else if form.Provider != "" {
|
} else if form.Provider != "" {
|
||||||
|
organization := object.GetOrganization(fmt.Sprintf("%s/%s", "admin", form.Organization))
|
||||||
application := object.GetApplication(fmt.Sprintf("admin/%s", form.Application))
|
application := object.GetApplication(fmt.Sprintf("admin/%s", form.Application))
|
||||||
provider := object.GetProvider(fmt.Sprintf("admin/%s", form.Provider))
|
provider := object.GetProvider(fmt.Sprintf("admin/%s", form.Provider))
|
||||||
providerItem := application.GetProviderItem(provider.Name)
|
providerItem := application.GetProviderItem(provider.Name)
|
||||||
@ -287,7 +288,7 @@ func (c *ApiController) Login() {
|
|||||||
object.AddUser(user)
|
object.AddUser(user)
|
||||||
|
|
||||||
// sync info from 3rd-party if possible
|
// 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)
|
object.LinkUserAccount(user, provider.Type, userInfo.Id)
|
||||||
|
|
||||||
@ -317,7 +318,7 @@ func (c *ApiController) Login() {
|
|||||||
user := object.GetUser(userId)
|
user := object.GetUser(userId)
|
||||||
|
|
||||||
// sync info from 3rd-party if possible
|
// 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)
|
isLinked := object.LinkUserAccount(user, provider.Type, userInfo.Id)
|
||||||
if isLinked {
|
if isLinked {
|
||||||
|
@ -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 != "" {
|
if userInfo.Id != "" {
|
||||||
propertyName := fmt.Sprintf("oauth_%s_id", providerType)
|
propertyName := fmt.Sprintf("oauth_%s_id", providerType)
|
||||||
setUserProperty(user, propertyName, userInfo.Id)
|
setUserProperty(user, propertyName, userInfo.Id)
|
||||||
@ -130,7 +130,7 @@ func SetUserOAuthProperties(user *User, providerType string, userInfo *idp.UserI
|
|||||||
if userInfo.AvatarUrl != "" {
|
if userInfo.AvatarUrl != "" {
|
||||||
propertyName := fmt.Sprintf("oauth_%s_avatarUrl", providerType)
|
propertyName := fmt.Sprintf("oauth_%s_avatarUrl", providerType)
|
||||||
setUserProperty(user, propertyName, userInfo.AvatarUrl)
|
setUserProperty(user, propertyName, userInfo.AvatarUrl)
|
||||||
if user.Avatar == "" {
|
if user.Avatar == "" || user.Avatar == organization.DefaultAvatar {
|
||||||
user.Avatar = userInfo.AvatarUrl
|
user.Avatar = userInfo.AvatarUrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user