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