From 9a167d4076872e5e3e5d78d2a66ef7203ca5261b Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Mon, 24 Feb 2025 09:40:14 +0100 Subject: [PATCH] fix: delete profile picture if user gets deleted --- backend/internal/service/ldap_service.go | 2 +- backend/internal/service/user_service.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/internal/service/ldap_service.go b/backend/internal/service/ldap_service.go index 5a27482..c03938e 100644 --- a/backend/internal/service/ldap_service.go +++ b/backend/internal/service/ldap_service.go @@ -263,7 +263,7 @@ func (s *LdapService) SyncUsers() error { // Delete users that no longer exist in LDAP for _, user := range ldapUsersInDb { if _, exists := ldapUserIDs[*user.LdapID]; !exists { - if err := s.db.Delete(&model.User{}, "ldap_id = ?", user.LdapID).Error; err != nil { + if err := s.userService.DeleteUser(user.ID); err != nil { log.Printf("Failed to delete user %s with: %v", user.Username, err) } else { log.Printf("Deleted user %s", user.Username) diff --git a/backend/internal/service/user_service.go b/backend/internal/service/user_service.go index 2166f02..077ab48 100644 --- a/backend/internal/service/user_service.go +++ b/backend/internal/service/user_service.go @@ -128,6 +128,12 @@ func (s *UserService) DeleteUser(userID string) error { return &common.LdapUserUpdateError{} } + // Delete the profile picture + profilePicturePath := fmt.Sprintf("%s/profile-pictures/%s.png", common.EnvConfig.UploadPath, userID) + if err := os.Remove(profilePicturePath); err != nil && !os.IsNotExist(err) { + return err + } + return s.db.Delete(&user).Error }