package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import javax.validation.ConstraintViolationException;
+
import org.springframework.security.access.AccessDeniedException;
import eu.etaxonomy.cdm.api.service.IUserService;
-import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.permission.User;
+import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
*/
public class UserCreator implements IEntityCreator<User>{
- /* (non-Javadoc)
+ public static final String USER = "User"; //$NON-NLS-1$
+
+ /* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.String)
*/
@Override
*/
@Override
public User createEntity(Object key, String text) {
- try{
- User user = User.NewInstance(text, text);
- CdmStore.getService(IUserService.class).createUser(user);
- user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
- return user;
- } catch (AccessDeniedException e){
- MessagingUtils.messageDialog("Access denied", getClass(), e.getMessage(), e);
- return null;
- }
+
+ try{
+ User user = User.NewInstance(text, text);
+ List<User> userList =CdmStore.getService(IUserService.class).listByUsername(user.getUsername(), MatchMode.EXACT, null, 100, 0, null, null);
+ if (userList.isEmpty()){
+ CdmStore.getService(IUserService.class).createUser(user);
+ user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
+ return user;
+ } else{
+ MessagingUtils.messageDialog(Messages.USER_CREATOR_user_exists_title, user, Messages.USER_CREATOR_user_exists);
+ return null;
+ }
+ } catch (AccessDeniedException e){
+ MessagingUtils.messageDialog(Messages.USER_CREATOR_Acces_denied, getClass(), e.getMessage(), e);
+ return null;
+ } catch (ConstraintViolationException cve){
+ MessagingUtils.messageDialog(Messages.USER_CREATOR_Name_not_accepted, getClass(), Messages.USER_CREATOR_Name_not_accepted_message);
+ return null;
+ }
+
}
/* (non-Javadoc)
@Override
public Map<Object, String> getKeyLabelPairs() {
Map<Object, String> result = new HashMap<Object, String>();
- result.put(User.class, "User");
+ result.put(User.class, USER);
return result;
}