diff --git a/object/user.go b/object/user.go index 37248a91..03366714 100644 --- a/object/user.go +++ b/object/user.go @@ -15,12 +15,10 @@ package object import ( - "bytes" "fmt" "strings" "github.com/casdoor/casdoor/conf" - "github.com/casdoor/casdoor/proxy" "github.com/casdoor/casdoor/util" "github.com/go-webauthn/webauthn/webauthn" "github.com/xorm-io/core" @@ -843,46 +841,6 @@ func userChangeTrigger(oldName string, newName string) error { return session.Commit() } -func (user *User) refreshAvatar() (bool, error) { - var err error - var fileBuffer *bytes.Buffer - var ext string - - // Gravatar + Identicon - if strings.Contains(user.Avatar, "Gravatar") && user.Email != "" { - client := proxy.ProxyHttpClient - has, err := hasGravatar(client, user.Email) - if err != nil { - return false, err - } - - if has { - fileBuffer, ext, err = getGravatarFileBuffer(client, user.Email) - if err != nil { - return false, err - } - } - } - - if fileBuffer == nil && strings.Contains(user.Avatar, "Identicon") { - fileBuffer, ext, err = getIdenticonFileBuffer(user.Name) - if err != nil { - return false, err - } - } - - if fileBuffer != nil { - avatarUrl, err := getPermanentAvatarUrlFromBuffer(user.Owner, user.Name, fileBuffer, ext, true) - if err != nil { - return false, err - } - user.Avatar = avatarUrl - return true, nil - } - - return false, nil -} - func (user *User) IsMfaEnabled() bool { return len(user.MultiFactorAuths) > 0 } diff --git a/object/user_avatar.go b/object/user_avatar.go new file mode 100644 index 00000000..36c0106f --- /dev/null +++ b/object/user_avatar.go @@ -0,0 +1,62 @@ +// Copyright 2023 The Casdoor Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package object + +import ( + "bytes" + "strings" + + "github.com/casdoor/casdoor/proxy" +) + +func (user *User) refreshAvatar() (bool, error) { + var err error + var fileBuffer *bytes.Buffer + var ext string + + // Gravatar + Identicon + if strings.Contains(user.Avatar, "Gravatar") && user.Email != "" { + client := proxy.ProxyHttpClient + has, err := hasGravatar(client, user.Email) + if err != nil { + return false, err + } + + if has { + fileBuffer, ext, err = getGravatarFileBuffer(client, user.Email) + if err != nil { + return false, err + } + } + } + + if fileBuffer == nil && strings.Contains(user.Avatar, "Identicon") { + fileBuffer, ext, err = getIdenticonFileBuffer(user.Name) + if err != nil { + return false, err + } + } + + if fileBuffer != nil { + avatarUrl, err := getPermanentAvatarUrlFromBuffer(user.Owner, user.Name, fileBuffer, ext, true) + if err != nil { + return false, err + } + user.Avatar = avatarUrl + return true, nil + } + + return false, nil +} diff --git a/object/avatar_test.go b/object/user_avatar_test.go similarity index 100% rename from object/avatar_test.go rename to object/user_avatar_test.go