From 123f0aea00687d98893036e252efa7ff672b3ad5 Mon Sep 17 00:00:00 2001 From: zeripath Date: Mon, 27 Sep 2021 03:39:36 +0100 Subject: Allow LDAP Sources to provide Avatars (#16851) * Allow LDAP Sources to provide Avatars Add setting to LDAP source to allow it to provide an Avatar. Currently this is required to point to the image bytes. Fix #4144 Signed-off-by: Andrew Thornton * Rename as Avatar Attribute (drop JPEG) Signed-off-by: Andrew Thornton * Always synchronize avatar if there is change Signed-off-by: Andrew Thornton * Actually get the avatar from the ldap Signed-off-by: Andrew Thornton * clean-up Signed-off-by: Andrew Thornton * use len()>0 rather than != "" Signed-off-by: Andrew Thornton * slight shortcut in IsUploadAvatarChanged Signed-off-by: Andrew Thornton Co-authored-by: techknowlogick --- models/user_avatar.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'models') diff --git a/models/user_avatar.go b/models/user_avatar.go index 65e59eb326..a7ca1c9151 100644 --- a/models/user_avatar.go +++ b/models/user_avatar.go @@ -153,6 +153,15 @@ func (u *User) UploadAvatar(data []byte) error { return sess.Commit() } +// IsUploadAvatarChanged returns true if the current user's avatar would be changed with the provided data +func (u *User) IsUploadAvatarChanged(data []byte) bool { + if !u.UseCustomAvatar || len(u.Avatar) == 0 { + return true + } + avatarID := fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprintf("%d-%x", u.ID, md5.Sum(data))))) + return u.Avatar != avatarID +} + // DeleteAvatar deletes the user's custom avatar. func (u *User) DeleteAvatar() error { aPath := u.CustomAvatarRelativePath() -- cgit v1.2.3