Author: solomax
Date: Sat Feb 22 10:28:29 2014
New Revision: 1570815

URL: http://svn.apache.org/r1570815
Log:
[OPENMEETINGS-930] user login is set to the random UUID in case too small value 
was passed

Modified:
    
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
    
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
    
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
    
openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java

Modified: 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java?rev=1570815&r1=1570814&r2=1570815&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 Sat Feb 22 10:28:29 2014
@@ -18,12 +18,14 @@
  */
 package org.apache.openmeetings.db.dao.user;
 
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
@@ -62,7 +64,7 @@ public class AbstractUserDao  {
        private EntityManager em;
 
        @Autowired
-       private ConfigurationDao configurationDao;
+       private ConfigurationDao cfgDao;
        @Autowired
        private StateDao stateDaoImpl;
        @Autowired
@@ -82,7 +84,7 @@ public class AbstractUserDao  {
                user.setSalutations_id(1L); // TODO: Fix default selection to be
                                                                        // 
configurable
                user.setLevel_id(1L);
-               
user.setLanguage_id(configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, 
Long.class, "1"));
+               user.setLanguage_id(cfgDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, 
Long.class, "1"));
                
user.setTimeZoneId(timezoneUtil.getTimeZone(currentUser).getID());
                user.setForceTimeZoneCheck(false);
                user.setSendSMS(false);
@@ -164,7 +166,7 @@ public class AbstractUserDao  {
                if (password != null && !password.isEmpty()) {
                        //OpenJPA is not allowing to set fields not being 
fetched before
                        User u1 = get(u.getUser_id(), true);
-                       u1.updatePassword(configurationDao, password);
+                       u1.updatePassword(cfgDao, password);
                        update(u1, updatedBy);
                }
                return u;
@@ -394,7 +396,8 @@ public class AbstractUserDao  {
                if (to == null) {
                        to = new User();
                        to.setType(Type.contact);
-                       to.setLogin(owner.getUser_id() + "_" + email); //UserId 
prefix is used to ensure unique login
+                       String login = owner.getUser_id() + "_" + email; 
//UserId prefix is used to ensure unique login
+                       to.setLogin(login.length() < getMinLoginLength(cfgDao) 
? UUID.randomUUID().toString() : login);
                        to.setFirstname(firstName);
                        to.setLastname(lastName);
                        to.setLanguage_id(null == langId ? 
owner.getLanguage_id() : langId);

Modified: 
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1570815&r1=1570814&r2=1570815&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
 Sat Feb 22 10:28:29 2014
@@ -22,6 +22,7 @@ import static org.apache.commons.transac
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadDir;
 import static 
org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
@@ -42,6 +43,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -284,10 +286,14 @@ public class BackupImport {
                {
                        String jNameTimeZone = 
configurationDao.getConfValue("default.timezone", String.class, 
"Europe/Berlin");
                        List<User> list = readUserList(f, "users.xml", "users");
+                       int minLoginLength = 
getMinLoginLength(configurationDao);
                        for (User u : list) {
                                if (u.getLogin() == null) {
                                        continue;
                                }
+                               if (u.getType() == Type.contact && 
u.getLogin().length() < minLoginLength) {
+                                       
u.setLogin(UUID.randomUUID().toString());
+                               }
                                //FIXME: OPENMEETINGS-750
                                //Convert old Backups with OmTimeZone to new 
schema
                                

Modified: 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java?rev=1570815&r1=1570814&r2=1570815&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 Sat Feb 22 10:28:29 2014
@@ -18,12 +18,14 @@
  */
 package org.apache.openmeetings.db.dao.user;
 
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
@@ -62,7 +64,7 @@ public class AbstractUserDao  {
        private EntityManager em;
 
        @Autowired
-       private ConfigurationDao configurationDao;
+       private ConfigurationDao cfgDao;
        @Autowired
        private StateDao stateDaoImpl;
        @Autowired
@@ -82,7 +84,7 @@ public class AbstractUserDao  {
                user.setSalutations_id(1L); // TODO: Fix default selection to be
                                                                        // 
configurable
                user.setLevel_id(1L);
-               
user.setLanguage_id(configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, 
Long.class, "1"));
+               user.setLanguage_id(cfgDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, 
Long.class, "1"));
                
user.setTimeZoneId(timezoneUtil.getTimeZone(currentUser).getID());
                user.setForceTimeZoneCheck(false);
                user.setSendSMS(false);
@@ -164,7 +166,7 @@ public class AbstractUserDao  {
                if (password != null && !password.isEmpty()) {
                        //OpenJPA is not allowing to set fields not being 
fetched before
                        User u1 = get(u.getUser_id(), true);
-                       u1.updatePassword(configurationDao, password);
+                       u1.updatePassword(cfgDao, password);
                        update(u1, updatedBy);
                }
                return u;
@@ -394,7 +396,8 @@ public class AbstractUserDao  {
                if (to == null) {
                        to = new User();
                        to.setType(Type.contact);
-                       to.setLogin(owner.getUser_id() + "_" + email); //UserId 
prefix is used to ensure unique login
+                       String login = owner.getUser_id() + "_" + email; 
//UserId prefix is used to ensure unique login
+                       to.setLogin(login.length() < getMinLoginLength(cfgDao) 
? UUID.randomUUID().toString() : login);
                        to.setFirstname(firstName);
                        to.setLastname(lastName);
                        to.setLanguage_id(null == langId ? 
owner.getLanguage_id() : langId);

Modified: 
openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1570815&r1=1570814&r2=1570815&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java
 Sat Feb 22 10:28:29 2014
@@ -22,6 +22,7 @@ import static org.apache.commons.transac
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadDir;
 import static 
org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
@@ -42,6 +43,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -284,10 +286,14 @@ public class BackupImport {
                {
                        String jNameTimeZone = 
configurationDao.getConfValue("default.timezone", String.class, 
"Europe/Berlin");
                        List<User> list = readUserList(f, "users.xml", "users");
+                       int minLoginLength = 
getMinLoginLength(configurationDao);
                        for (User u : list) {
                                if (u.getLogin() == null) {
                                        continue;
                                }
+                               if (u.getType() == Type.contact && 
u.getLogin().length() < minLoginLength) {
+                                       
u.setLogin(UUID.randomUUID().toString());
+                               }
                                //FIXME: OPENMEETINGS-750
                                //Convert old Backups with OmTimeZone to new 
schema
                                


Reply via email to