falg to turn off preliminar natural langage representation improvement
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / UserService.java
index b04a68ac84ea743e74fdbaf361e5c4054687695c..5c3978c94dbcbb84d79ae05658794ec8ac0fea0d 100644 (file)
@@ -9,6 +9,7 @@
  */\r
 package eu.etaxonomy.cdm.api.service;\r
 \r
+import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.UUID;\r
 \r
@@ -16,20 +17,21 @@ import org.hibernate.NonUniqueResultException;
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.dao.DataAccessException;\r
 import org.springframework.dao.IncorrectResultSizeDataAccessException;\r
-import org.springframework.security.AccessDeniedException;\r
-import org.springframework.security.Authentication;\r
-import org.springframework.security.AuthenticationManager;\r
-import org.springframework.security.GrantedAuthority;\r
-import org.springframework.security.context.SecurityContextHolder;\r
-import org.springframework.security.providers.UsernamePasswordAuthenticationToken;\r
-import org.springframework.security.providers.dao.SaltSource;\r
-import org.springframework.security.providers.dao.UserCache;\r
-import org.springframework.security.providers.dao.cache.NullUserCache;\r
-import org.springframework.security.providers.dao.salt.ReflectionSaltSource;\r
-import org.springframework.security.providers.encoding.Md5PasswordEncoder;\r
-import org.springframework.security.providers.encoding.PasswordEncoder;\r
-import org.springframework.security.userdetails.UserDetails;\r
-import org.springframework.security.userdetails.UsernameNotFoundException;\r
+\r
+import org.springframework.security.access.AccessDeniedException;\r
+import org.springframework.security.authentication.AuthenticationManager;\r
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;\r
+import org.springframework.security.authentication.dao.ReflectionSaltSource;\r
+import org.springframework.security.authentication.dao.SaltSource;\r
+import org.springframework.security.authentication.encoding.Md5PasswordEncoder;\r
+import org.springframework.security.authentication.encoding.PasswordEncoder;\r
+import org.springframework.security.core.Authentication;\r
+import org.springframework.security.core.GrantedAuthority;\r
+import org.springframework.security.core.context.SecurityContextHolder;\r
+import org.springframework.security.core.userdetails.UserCache;\r
+import org.springframework.security.core.userdetails.UserDetails;\r
+import org.springframework.security.core.userdetails.UsernameNotFoundException;\r
+import org.springframework.security.core.userdetails.cache.NullUserCache;\r
 import org.springframework.stereotype.Service;\r
 import org.springframework.transaction.annotation.Propagation;\r
 import org.springframework.transaction.annotation.Transactional;\r
@@ -192,6 +194,10 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
                return user != null;\r
        }\r
 \r
+       /**\r
+        * DO NOT CALL THIS METHOD IN LONG RUNNING SESSIONS OR CONVERSATIONS\r
+        * A THROWN UsernameNotFoundException WILL RENDER THE CONVERSATION UNUSABLE\r
+        */\r
        public UserDetails loadUserByUsername(String username)\r
                        throws UsernameNotFoundException, DataAccessException {\r
                Assert.hasText(username);\r
@@ -232,7 +238,7 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
        }\r
 \r
        @Transactional(readOnly=false)\r
-       public void createGroup(String groupName, GrantedAuthority[] authorities) {\r
+       public void createGroup(String groupName, List<GrantedAuthority> authorities) {\r
                Assert.hasText(groupName);\r
                Assert.notNull(authorities);\r
                \r
@@ -254,25 +260,24 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
                groupDao.delete(group);\r
        }\r
 \r
-       public String[] findAllGroups() {\r
-               List<String> names = groupDao.listNames(null,null);\r
-               return names.toArray(new String[names.size()]);\r
+       public List<String> findAllGroups() {\r
+               return groupDao.listNames(null,null);\r
        }\r
 \r
-       public GrantedAuthority[] findGroupAuthorities(String groupName) {\r
+       public List<GrantedAuthority> findGroupAuthorities(String groupName) {\r
                Assert.hasText(groupName);\r
                Group group = groupDao.findGroupByName(groupName);\r
                \r
-               return group.getGrantedAuthorities().toArray(new GrantedAuthority[group.getGrantedAuthorities().size()]);\r
+               return new ArrayList<GrantedAuthority>(group.getGrantedAuthorities());\r
        }\r
 \r
-       public String[] findUsersInGroup(String groupName) {\r
+       public List<String> findUsersInGroup(String groupName) {\r
                Assert.hasText(groupName);\r
                Group group = groupDao.findGroupByName(groupName);\r
                \r
                List<String> users = groupDao.listMembers(group, null, null);\r
                \r
-               return users.toArray(new String[users.size()]);\r
+               return users;\r
        }\r
 \r
        @Transactional(readOnly=false)\r
@@ -316,11 +321,10 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
        public UUID save(User user) {\r
                if(user.getId() == 0 || dao.load(user.getUuid()) == null){\r
                        createUser(user);\r
+               }else{\r
+                       updateUser(user);\r
                }\r
-               updateUser(user);\r
-               \r
                return user.getUuid(); \r
-//             return dao.save(user);\r
        }\r
 \r
        @Override\r