Skip to content
Snippets Groups Projects
Commit 3fcc016e authored by lhameury's avatar lhameury
Browse files

Fix issue on ParapheurUserPreferencesImpl

We have to check that user exists before setting or getting preferences
parent 81d4db90
No related branches found
No related tags found
No related merge requests found
......@@ -44,6 +44,8 @@ package com.atolcd.parapheur.repo.impl;
import com.atolcd.parapheur.repo.ParapheurUserPreferences;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.service.cmr.preference.PreferenceService;
import org.alfresco.service.cmr.security.PersonService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
......@@ -59,23 +61,36 @@ import java.util.Map;
*/
public class ParapheurUserPreferencesImpl implements ParapheurUserPreferences {
private final Logger logger = Logger.getLogger(ParapheurUserPreferences.class);
@Qualifier("PreferenceService")
@Autowired
private PreferenceService preferenceService;
@Autowired
private PersonService personService;
private void setPreference(String username, String key, Serializable value) {
Map<String, Serializable> preferenceMap = preferenceService.getPreferences(username);
preferenceMap.put(key, value);
preferenceService.setPreferences(username, preferenceMap);
if(personService.personExists(username)) {
Map<String, Serializable> preferenceMap = preferenceService.getPreferences(username);
preferenceMap.put(key, value);
preferenceService.setPreferences(username, preferenceMap);
} else {
logger.error(String.format("Impossible de définir les préférences de l'utilisateur %s : l'utilisateur n'existe pas", username));
}
}
private Serializable getPreference(String username, String key, Serializable defaultValue) {
Serializable value = null;
try {
Map<String, Serializable> preferenceMap = preferenceService.getPreferences(username);
value = preferenceMap.get(key);
if(personService.personExists(username)) {
Map<String, Serializable> preferenceMap = preferenceService.getPreferences(username);
value = preferenceMap.get(key);
} else {
logger.warn(String.format("Récupération de préférences d'un utilisateur non-existant : %s", username));
}
} catch (AlfrescoRuntimeException e) {
logger.error(String.format("Erreur à la récupération des préférences utilisateur de %s", username), e);
}
return (value == null)? defaultValue : value;
}
......@@ -154,17 +169,15 @@ public class ParapheurUserPreferencesImpl implements ParapheurUserPreferences {
@Override
public void setNotificationMailForUsername(String username, String mail) {
if ((mail == null) || mail.trim().isEmpty()) {
preferenceService.clearPreferences(username, NOTIFICATION_MAIL_PREFERENCE);
}
else {
setPreference(username, NOTIFICATION_MAIL_PREFERENCE, mail);
if(personService.personExists(username)) {
if ((mail == null) || mail.trim().isEmpty()) {
preferenceService.clearPreferences(username, NOTIFICATION_MAIL_PREFERENCE);
}
else {
setPreference(username, NOTIFICATION_MAIL_PREFERENCE, mail);
}
} else {
logger.error(String.format("Impossible de définir les préférences de l'utilisateur %s : l'utilisateur n'existe pas", username));
}
}
/* Setters */
public void setPreferenceService(PreferenceService preferenceService) {
this.preferenceService = preferenceService;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment