diff --git a/pkg/modules/auth/ldap/ldap.go b/pkg/modules/auth/ldap/ldap.go index 05626b0e5..961973ab3 100644 --- a/pkg/modules/auth/ldap/ldap.go +++ b/pkg/modules/auth/ldap/ldap.go @@ -229,6 +229,30 @@ func getOrCreateLdapUser(s *xorm.Session, entry *ldap.Entry) (u *user.User, err return auth.CreateUserWithRandomUsername(s, uu) } + // Check if user information has changed and update if necessary + needsUpdate := false + + if u.Email != email && email != "" { + u.Email = email + needsUpdate = true + } + + if u.Name != name && name != "" { + u.Name = name + needsUpdate = true + } + + if needsUpdate { + log.Debugf("Updating LDAP user information for %s", username) + _, err = s.Where("id = ?", u.ID). + Cols("email", "name"). + Update(u) + if err != nil { + log.Errorf("Failed to update user information: %v", err) + return nil, err + } + } + return } @@ -336,8 +360,6 @@ func cropAvatarTo1x1(imageData []byte) ([]byte, error) { switch format { case "jpeg": err = jpeg.Encode(&buf, croppedImg, nil) - case "png": - err = png.Encode(&buf, croppedImg) default: // Default to PNG if format is unknown err = png.Encode(&buf, croppedImg) diff --git a/pkg/user/user.go b/pkg/user/user.go index 38fb88ff0..7458449f7 100644 --- a/pkg/user/user.go +++ b/pkg/user/user.go @@ -29,8 +29,8 @@ import ( "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/modules/keyvalue" "code.vikunja.io/api/pkg/notifications" - "code.vikunja.io/api/pkg/web" + "github.com/golang-jwt/jwt/v5" "github.com/labstack/echo/v4" "golang.org/x/crypto/bcrypt"