Merge branch 'release/5.11.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / input / entitycreator / UserCreator.java
index 0abba8e900b681add629bf6d1148863859394996..5f0d01cf20ad0124120472e5fadbd8df49f71220 100644 (file)
 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;
 
@@ -27,7 +32,9 @@ 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
@@ -40,15 +47,26 @@ public class UserCreator  implements IEntityCreator<User>{
         */
        @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)
@@ -57,7 +75,7 @@ public class UserCreator  implements IEntityCreator<User>{
        @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;
        }