Added `deleteAvatarImage` method and implementations

This commit is contained in:
Mauro Mugnaini 2020-08-21 11:07:00 +02:00
parent 0e5240920f
commit e9061b5fee
3 changed files with 31 additions and 0 deletions

View File

@ -39,6 +39,9 @@ public class FileAvatarStorageProvider implements AvatarStorageProvider {
public void saveAvatarImage(RealmModel realm, UserModel user, InputStream input) {
checkRealmFolderExistence(realm.getName());
File avatarFile = getAvatarFile(realm, user);
logger.debugf("Saving new avatar file for user %s, file path is: %s", user.getUsername(),
avatarFile.getAbsolutePath());
if (!avatarFile.exists()) {
try {
avatarFile.createNewFile();
@ -65,6 +68,12 @@ public class FileAvatarStorageProvider implements AvatarStorageProvider {
public InputStream loadAvatarImage(RealmModel realm, UserModel user) {
checkRealmFolderExistence(realm.getName());
File avatarFile = getAvatarFile(realm, user);
if (avatarFile.exists()) {
logger.debugf("Loading avatar file for user %s, file path is: %s", user.getUsername(),
avatarFile.getAbsolutePath());
} else {
logger.debugf("Avatar file not found for user %s", user.getUsername());
}
try {
return new FileInputStream(avatarFile);
} catch (FileNotFoundException e) {
@ -78,6 +87,20 @@ public class FileAvatarStorageProvider implements AvatarStorageProvider {
useEmailAsFilename ? user.getEmail() : user.getUsername());
}
@Override
public void deleteAvatarImage(RealmModel realm, UserModel user) {
checkRealmFolderExistence(realm.getName());
File avatarFile = getAvatarFile(realm, user);
if (avatarFile.exists()) {
logger.debugf("Deleting avatar file for user %s, file path is: %s", user.getUsername(),
avatarFile.getAbsolutePath());
avatarFile.delete();
} else {
logger.debugf("Avatar file to delete not found for user %s", user.getUsername());
}
}
@Override
public void close() {
// NOOP

View File

@ -52,6 +52,12 @@ public class UserAttributeAvatarStorageProvider implements AvatarStorageProvider
byte[] decoded = base64EncodedImage != null ? Base64.getDecoder().decode(base64EncodedImage) : new byte[0];
return new ByteArrayInputStream(decoded);
}
@Override
public void deleteAvatarImage(RealmModel realm, UserModel user) {
logger.debugf("Removing avatar image user's attribute: %s", userAttribute);
user.removeAttribute(userAttribute);
}
@Override
public void close() {

View File

@ -12,4 +12,6 @@ public interface AvatarStorageProvider extends Provider {
InputStream loadAvatarImage(RealmModel realm, UserModel user);
void deleteAvatarImage(RealmModel realm, UserModel user);
}