You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/04/06 16:59:51 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1864] initial code clean-up

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new ac4f8d0  [OPENMEETINGS-1864] initial code clean-up
ac4f8d0 is described below

commit ac4f8d0d4623ccca7f182afee3c0da4496d1afb8
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Fri Apr 6 23:43:34 2018 +0700

    [OPENMEETINGS-1864] initial code clean-up
---
 .../openmeetings/core/ldap/LdapLoginManager.java   |   3 +-
 .../openmeetings/core/remote/MobileService.java    |  19 +--
 .../core/util/StrongPasswordValidator.java         |  16 +-
 .../db/dao/basic/ConfigurationDao.java             |  22 +++
 .../openmeetings/db/dao/user/IUserManager.java     |  20 +--
 .../apache/openmeetings/db/dao/user/UserDao.java   |  10 +-
 .../apache/openmeetings/db/util/UserHelper.java    |  38 -----
 .../apache/openmeetings/backup/BackupImport.java   |   4 +-
 .../java/org/apache/openmeetings/cli/Admin.java    |   5 +-
 .../installation/ImportInitvalues.java             |   3 +-
 .../openmeetings/service/user/UserManager.java     | 167 ++++++---------------
 .../openmeetings/util/OpenmeetingsVariables.java   |  18 +++
 .../openmeetings/web/admin/users/UserForm.java     |  14 +-
 .../openmeetings/web/admin/users/UsersPanel.java   |   3 +-
 .../apache/openmeetings/web/app/WebSession.java    |   3 +-
 .../web/pages/auth/ForgetPasswordDialog.java       |   7 +-
 .../web/pages/auth/RegisterDialog.java             |  23 +--
 .../web/pages/auth/ResetPasswordDialog.java        |   7 +-
 .../web/pages/install/InstallWizard.java           |   3 +-
 .../web/user/profile/ChangePasswordDialog.java     |   6 +-
 .../apache/openmeetings/backup/TestOldBackups.java |   3 -
 .../apache/openmeetings/domain/TestAddGroup.java   |   5 -
 .../apache/openmeetings/user/TestUserContact.java  |   4 -
 .../apache/openmeetings/user/TestUserGroup.java    |   3 -
 .../openmeetings/webservice/UserWebService.java    |  20 +--
 25 files changed, 140 insertions(+), 286 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
index 77a94a4..8028ef9 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.core.ldap;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.db.util.LocaleHelper.validateCountry;
 import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
 import static org.apache.openmeetings.util.OmException.BAD_CREDENTIALS;
@@ -339,7 +340,7 @@ public class LdapLoginManager {
 				throw BAD_CREDENTIALS;
 			}
 			if (u == null) {
-				u = userDao.getNewUserInstance(null);
+				u = getNewUserInstance(null);
 				u.setType(Type.ldap);
 				u.getRights().remove(Right.Login);
 				u.setDomainId(domainId);
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
index 82a3de0..b8e8103 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.core.remote;
 
 import static org.apache.openmeetings.db.util.LocaleHelper.getCountryName;
 import static org.apache.openmeetings.util.OmException.UNKNOWN;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_OAUTH;
@@ -155,23 +154,15 @@ public class MobileService {
 				String country = umap.get("stateId");
 				Long langId = Long.valueOf(umap.get("langId"));
 
-				String hash = UUID.randomUUID().toString();
-
-				String baseURL = getBaseUrl();
-				boolean sendConfirmation = !Strings.isEmpty(baseURL)
-						&& cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
-				Object user = userManager.registerUserInit(UserDao.getDefaultRights(), login, password, lastname
-						, firstname, email, null /* age/birthday */, "" /* street */
-						, "" /* additionalname */, "" /* fax */, "" /* zip */, country
-						, "" /* town */, langId, true /* sendWelcomeMessage */
-						, Arrays.asList(cfgDao.getLong(CONFIG_DEFAULT_GROUP_ID, null)),
-						"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzId),
-						false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
-						true /* showContactDataToContacts */, hash);
+				Object user = userManager.registerUser(login, password, lastname
+						, firstname, email, country, langId, tzId);
 				if (user == null) {
 					//do nothing
 				} else if (user instanceof User) {
 					User u = (User)user;
+					String baseURL = getBaseUrl();
+					boolean sendConfirmation = !Strings.isEmpty(baseURL)
+							&& cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
 					if (sendConfirmation) {
 						add(result, PARAM_STATUS, -666L);
 					} else {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/StrongPasswordValidator.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/StrongPasswordValidator.java
index e4533df..2d9e403 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/StrongPasswordValidator.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/StrongPasswordValidator.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.core.util;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinPasswdLength;
+
 import java.util.Map;
 
 import org.apache.directory.api.util.Strings;
@@ -33,16 +35,14 @@ import org.slf4j.LoggerFactory;
 public class StrongPasswordValidator implements IValidator<String> {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(StrongPasswordValidator.class);
-	private final int minLength;
 	private final boolean web;
 	private User u;
 
-	public StrongPasswordValidator(final int minLength, final User u) {
-		this(true, minLength, u);
+	public StrongPasswordValidator(final User u) {
+		this(true, u);
 	}
 
-	public StrongPasswordValidator(final boolean web, final int minLength, final User u) {
-		this.minLength = minLength;
+	public StrongPasswordValidator(final boolean web, final User u) {
 		this.web = web;
 		this.u = u;
 	}
@@ -63,8 +63,8 @@ public class StrongPasswordValidator implements IValidator<String> {
 		return password == null || password.equals(password.toUpperCase());
 	}
 
-	private boolean badLength(String password) {
-		return password == null || password.length() < minLength;
+	private static boolean badLength(String password) {
+		return password == null || password.length() < getMinPasswdLength();
 	}
 
 	private static boolean checkWord(String password, String word) {
@@ -123,7 +123,7 @@ public class StrongPasswordValidator implements IValidator<String> {
 	@Override
 	public void validate(IValidatable<String> pass) {
 		if (badLength(pass.getValue())) {
-			error(pass, "bad.password.short", new MicroMap<String, Object>("0", minLength));
+			error(pass, "bad.password.short", new MicroMap<String, Object>("0", getMinPasswdLength()));
 		}
 		if (noLowerCase(pass.getValue())) {
 			error(pass, "bad.password.lower");
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 95a2753..f907990 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -31,14 +31,18 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_X
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_ARRANGE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_EXCLUSIVE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_MUTE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_BITRATE;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_RATE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REST_ALLOW_ORIGIN;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_MAX_UPLOAD_SIZE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getRoomSettings;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setApplicationName;
@@ -50,6 +54,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultLang;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setExtProcessTtl;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setGaCode;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setMaxUploadSize;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setMinLoginLength;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setMinPasswdLength;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setRestAllowOrigin;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setRoomSettings;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setSipEnabled;
@@ -322,6 +328,12 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 			case CONFIG_REST_ALLOW_ORIGIN:
 				reloadRestAllowOrigin();
 				break;
+			case CONFIG_LOGIN_MIN_LENGTH:
+				reloadLoginMinLength();
+				break;
+			case CONFIG_PASS_MIN_LENGTH:
+				reloadPasswdMinLength();
+				break;
 		}
 		return entity;
 	}
@@ -393,6 +405,14 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		setRestAllowOrigin(getString(CONFIG_REST_ALLOW_ORIGIN, null));
 	}
 
+	private void reloadLoginMinLength() {
+		setMinLoginLength(getInt(CONFIG_LOGIN_MIN_LENGTH, USER_LOGIN_MINIMUM_LENGTH));
+	}
+
+	private void reloadPasswdMinLength() {
+		setMinPasswdLength(getInt(CONFIG_LOGIN_MIN_LENGTH, USER_PASSWORD_MINIMUM_LENGTH));
+	}
+
 	public void reinit() {
 		reloadMaxUpload();
 		reloadCrypt();
@@ -406,6 +426,8 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		reloadTimezone();
 		reloadRestAllowOrigin();
 		reloadRoomSettings();
+		reloadLoginMinLength();
+		reloadPasswdMinLength();
 	}
 
 	private JSONObject reloadRoomSettings() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
index 9109612..9faffec 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
@@ -20,33 +20,19 @@ package org.apache.openmeetings.db.dao.user;
 
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
-import java.util.Date;
-import java.util.List;
 import java.util.Locale;
-import java.util.Set;
-import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dto.user.OAuthUser;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.util.OmException;
 
 //HACK to bypass cross project compilation
 public interface IUserManager {
 	Object registerUser(String login, String userpass, String lastname,
-			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, String country,
-			String town, long languageId, String phone, boolean sendSMS,
-			boolean generateSipUserData, String jNameTimeZone, Boolean sendConfirmation);
+			String firstname, String email, String country,
+			long languageId, String tzId);
 
-	Object registerUserInit(Set<Right> rights, String login, String password, String lastname,
-			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, String country,
-			String town, long languageId, boolean sendWelcomeMessage,
-			List<Long> groups, String phone, boolean sendSMS, Boolean sendConfirmation,
-			TimeZone timezone, Boolean forceTimeZoneCheck,
-			String userOffers, String userSearchs, Boolean showContactData,
-			Boolean showContactDataToContacts, String activatedHash) throws OmException, NoSuchAlgorithmException;
+	Object registerUser(User u, String password, String hash) throws OmException, NoSuchAlgorithmException;
 
 	Long getLanguage(Locale loc);
 	User loginOAuth(OAuthUser user, long serverId) throws IOException, NoSuchAlgorithmException;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index 8ccba80..0562ed7 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -19,10 +19,10 @@
 package org.apache.openmeetings.db.dao.user;
 
 import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
-import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static org.apache.openmeetings.util.DaoHelper.getStringParam;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -53,7 +53,6 @@ import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.db.util.UserHelper;
 import org.apache.openmeetings.util.DaoHelper;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.util.crypt.CryptProvider;
@@ -97,7 +96,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 	 * @param currentUser - the user to copy time zone from
 	 * @return new User instance
 	 */
-	public User getNewUserInstance(User currentUser) {
+	public static User getNewUserInstance(User currentUser) {
 		User user = new User();
 		user.setSalutation(Salutation.mr);
 		user.setRights(getDefaultRights());
@@ -106,6 +105,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 		user.setForceTimeZoneCheck(false);
 		user.setSendSMS(false);
 		user.setAge(new Date());
+		user.setLastlogin(new Date());
 		Address address = new Address();
 		address.setCountry(Locale.getDefault().getCountry());
 		user.setAddress(address);
@@ -366,7 +366,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 	}
 
 	public boolean validLogin(String login) {
-		return !Strings.isEmpty(login) && login.length() >= UserHelper.getMinLoginLength(cfgDao);
+		return !Strings.isEmpty(login) && login.length() >= getMinLoginLength();
 	}
 
 	private static User getSingle(List<User> list) {
@@ -481,7 +481,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 			User to = new User();
 			to.setType(Type.contact);
 			String login = owner.getId() + "_" + email; //UserId prefix is used to ensure unique login
-			to.setLogin(login.length() < getMinLoginLength(cfgDao) ? UUID.randomUUID().toString() : login);
+			to.setLogin(login.length() < getMinLoginLength() ? UUID.randomUUID().toString() : login);
 			to.setFirstname(firstName);
 			to.setLastname(lastName);
 			to.setLanguageId(null == langId || null == LabelDao.getLocale(langId) ? owner.getLanguageId() : langId.longValue());
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/UserHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/UserHelper.java
deleted file mode 100644
index 36a7a9a..0000000
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/UserHelper.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.db.util;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
-
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-
-public class UserHelper {
-	private UserHelper() {}
-
-	public static int getMinLoginLength(ConfigurationDao cfgDao) {
-		return cfgDao.getInt(CONFIG_LOGIN_MIN_LENGTH, USER_LOGIN_MINIMUM_LENGTH);
-	}
-
-	public static int getMinPasswdLength(ConfigurationDao cfgDao) {
-		return cfgDao.getInt(CONFIG_PASS_MIN_LENGTH, USER_PASSWORD_MINIMUM_LENGTH);
-	}
-}
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index a3572be..a9ef8a6 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -21,7 +21,6 @@ package org.apache.openmeetings.backup;
 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.BCKP_RECORD_FILES;
 import static org.apache.openmeetings.util.OmFileHelper.BCKP_ROOM_FILES;
 import static org.apache.openmeetings.util.OmFileHelper.CSS_DIR;
@@ -99,6 +98,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SMTP_TIM
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SMTP_TLS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SMTP_USER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultTimezone;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -548,7 +548,7 @@ public class BackupImport {
 		registry.bind(Salutation.class, SalutationConverter.class);
 		registry.bind(Date.class, DateConverter.class);
 		List<User> list = readList(ser, f, "users.xml", "users", User.class);
-		int minLoginLength = getMinLoginLength(cfgDao);
+		int minLoginLength = getMinLoginLength();
 		for (User u : list) {
 			if (u.getLogin() == null) {
 				continue;
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
index 7fc0537..9b2006a 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.cli;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.openmeetings.db.util.ApplicationHelper.destroyApplication;
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_CONTEXT_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
@@ -54,7 +53,6 @@ import org.apache.openmeetings.backup.BackupImport;
 import org.apache.openmeetings.backup.ProgressHolder;
 import org.apache.openmeetings.core.ldap.LdapLoginManager;
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -461,8 +459,7 @@ public class Admin {
 		if (cmdl.hasOption("password")) {
 			cfg.setPassword(cmdl.getOptionValue("password"));
 		}
-		ConfigurationDao cfgDao = getApplicationContext().getBean(ConfigurationDao.class);
-		IValidator<String> passValidator = new StrongPasswordValidator(false, getMinPasswdLength(cfgDao), new User());
+		IValidator<String> passValidator = new StrongPasswordValidator(false, new User());
 		Validatable<String> passVal;
 		do {
 			passVal = new Validatable<>(cfg.getPassword());
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index de8a481..24ced4e 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.installation;
 
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPOINTMENT_REMINDER_MINUTES;
@@ -416,7 +417,7 @@ public class ImportInitvalues {
 		org.setInserted(new Date());
 		org = groupDao.update(org, null);
 
-		User u = userDao.getNewUserInstance(null);
+		User u = getNewUserInstance(null);
 		u.setType(User.Type.user);
 		u.getRights().add(Right.Admin);
 		u.getRights().add(Right.Soap);
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
index 7248fac..95c58b5 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
@@ -18,42 +18,34 @@
  */
 package org.apache.openmeetings.service.user;
 
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
-import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
 import static org.apache.openmeetings.util.OmException.UNKNOWN;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_SOAP;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
-import java.util.Arrays;
 import java.util.Date;
-import java.util.List;
 import java.util.Locale;
-import java.util.Set;
-import java.util.TimeZone;
 import java.util.UUID;
 
 import org.apache.commons.codec.binary.Base64;
-import org.apache.openmeetings.core.remote.ScopeApplicationAdapter;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.user.OAuthUser;
-import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
-import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.db.entity.user.User.Type;
-import org.apache.openmeetings.db.manager.IStreamClientManager;
 import org.apache.openmeetings.service.mail.EmailManager;
 import org.apache.openmeetings.util.OmException;
 import org.apache.wicket.util.string.Strings;
@@ -72,8 +64,6 @@ public class UserManager implements IUserManager {
 	private static final Logger log = LoggerFactory.getLogger(UserManager.class);
 
 	@Autowired
-	private SessiondataDao sessionDao;
-	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
 	private GroupDao groupDao;
@@ -81,10 +71,13 @@ public class UserManager implements IUserManager {
 	private UserDao userDao;
 	@Autowired
 	private EmailManager emailManager;
-	@Autowired
-	private ScopeApplicationAdapter scopeAdapter;
-	@Autowired
-	private IStreamClientManager streamClientManager;
+
+	private boolean sendConfirmation() {
+		String baseURL = getBaseUrl();
+		return baseURL != null
+				&& !baseURL.isEmpty()
+				&& cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
+	}
 
 	/**
 	 * Method to register a new User, User will automatically be added to the
@@ -96,46 +89,32 @@ public class UserManager implements IUserManager {
 	 * @param lastname - user last name
 	 * @param firstname - user first name
 	 * @param email - user email
-	 * @param age - user birthday
-	 * @param street - user address street
-	 * @param additionalname - user additional name
-	 * @param fax - user fax
-	 * @param zip - user zip code
 	 * @param country - user country code
-	 * @param town - user town
 	 * @param languageId - language id
-	 * @param phone - user phone
-	 * @param sendSMS - should SMS be sent to this user
-	 * @param generateSipUserData - should SIP data be generated
-	 * @param jNameTimeZone - the name of the time zone
-	 * @param _sendConfirmation - should confirmation be sent
+	 * @param tzId - the name of the time zone
 	 * @return {@link User} of code of error as {@link String}
 	 */
 	@Override
 	public Object registerUser(String login, String password, String lastname,
-			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, String country,
-			String town, long languageId, String phone, boolean sendSMS,
-			boolean generateSipUserData, String jNameTimeZone, Boolean _sendConfirmation) {
+			String firstname, String email, String country, long languageId, String tzId) {
 		try {
 			// Checks if FrontEndUsers can register
 			if (cfgDao.getBool(CONFIG_REGISTER_SOAP, false)) {
-				boolean sendConfirmation;
-				if (_sendConfirmation == null) {
-					String baseURL = getBaseUrl();
-					sendConfirmation = baseURL != null
-							&& !baseURL.isEmpty()
-							&& cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
-				} else {
-					sendConfirmation = _sendConfirmation.booleanValue();
-				}
-				Object user = registerUserInit(UserDao.getDefaultRights(), login,
-						password, lastname, firstname, email, age, street,
-						additionalname, fax, zip, country, town, languageId,
-						true, Arrays.asList(cfgDao.getLong(CONFIG_DEFAULT_GROUP_ID, null)), phone,
-						sendSMS, sendConfirmation, getTimeZone(jNameTimeZone), false, "", "", false, true, null);
+				User u = getNewUserInstance(null);
+				u.setFirstname(firstname);
+				u.setLogin(login);
+				u.setLastname(lastname);
+				u.getAddress().setCountry(country);
+				u.getAddress().setEmail(email);
+				u.setTimeZoneId(getTimeZone(tzId).getID());
+
+				// this is needed cause the language is not a needed data at registering
+				u.setLanguageId(languageId != 0 ? languageId : 1);
+				u.getGroupUsers().add(new GroupUser(groupDao.get(cfgDao.getLong(CONFIG_DEFAULT_GROUP_ID, null)), u));
+
+				Object user = registerUser(u, password, null);
 
-				if (user instanceof User && sendConfirmation) {
+				if (user instanceof User && sendConfirmation()) {
 					return -40L;
 				}
 
@@ -150,108 +129,48 @@ public class UserManager implements IUserManager {
 	}
 
 	/**
-	 * @param rights - {@link Right} to be assigned to the user
-	 * @param login - user login
+	 * @param u - User with basic parametrs set
 	 * @param password - user password
-	 * @param lastname - user last name
-	 * @param firstname - user first name
-	 * @param email - user email
-	 * @param age - user birthday
-	 * @param street - user address street
-	 * @param additionalname - user additional name
-	 * @param fax - user fax
-	 * @param zip - user zip code
-	 * @param country - user country code
-	 * @param town - user town
-	 * @param languageId - language id
-	 * @param sendWelcomeMessage - should confirmation email be sent
-	 * @param groups - ids of user groups
-	 * @param phone - user phone
-	 * @param sendSMS - should SMS be sent to this user
-	 * @param sendConfirmation - should confirmation be sent
-	 * @param timezone - the name of the time zone
-	 * @param forceTimeZoneCheck - should time zone be verified by user
-	 * @param userOffers - what user offers
-	 * @param userSearchs - what user searches
-	 * @param showContactData - is contact data publicly visible
-	 * @param showContactDataToContacts - is contact data visible to contacts
-	 * @param activatedHash - activation hash
+	 * @param hash - activation hash
 	 * @return {@link User} of code of error as {@link String}
 	 * @throws NoSuchAlgorithmException in case password hashing algorithm is not found
 	 * @throws OmException in case of any issues with provided data
 	 */
 	@Override
-	public Object registerUserInit(Set<Right> rights, String login, String password, String lastname,
-			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, String country,
-			String town, long languageId, boolean sendWelcomeMessage,
-			List<Long> groups, String phone, boolean sendSMS, Boolean sendConfirmation,
-			TimeZone timezone, Boolean forceTimeZoneCheck,
-			String userOffers, String userSearchs, Boolean showContactData,
-			Boolean showContactDataToContacts, String activatedHash) throws OmException, NoSuchAlgorithmException {
+	public Object registerUser(User u, String password, String hash) throws OmException, NoSuchAlgorithmException {
 		// Check for required data
-		if (login.length() >= getMinLoginLength(cfgDao)) {
+		String login = u.getLogin();
+		if (!Strings.isEmpty(login) && login.length() >= getMinLoginLength()) {
 			// Check for duplicates
 			boolean checkName = userDao.checkLogin(login, User.Type.user, null, null);
+			String email = u.getAddress() == null ? null : u.getAddress().getEmail();
 			boolean checkEmail = Strings.isEmpty(email) || userDao.checkEmail(email, User.Type.user, null, null);
 			if (checkName && checkEmail) {
-				String hash = Strings.isEmpty(activatedHash) ? UUID.randomUUID().toString() : activatedHash;
-				if (sendWelcomeMessage && email.length() != 0) {
-					emailManager.sendMail(login, email, hash, sendConfirmation, languageId);
+				String ahash = Strings.isEmpty(hash) ? UUID.randomUUID().toString() : hash;
+				if (Strings.isEmpty(u.getExternalType())) {
+					if (!Strings.isEmpty(email)) {
+						emailManager.sendMail(login, email, ahash, sendConfirmation(), u.getLanguageId());
+					}
+				} else {
+					u.setType(Type.external);
 				}
-				Address a =  new Address();
-				a.setStreet(street);
-				a.setZip(zip);
-				a.setTown(town);
-				a.setCountry(country);
-				a.setAdditionalname(additionalname);
-				a.setComment("");
-				a.setFax(fax);
-				a.setPhone(phone);
-				a.setEmail(email);
 
 				// If this user needs first to click his E-Mail verification
 				// code then set the status to 0
-				if (sendConfirmation && rights.contains(Right.Login)) {
-					rights.remove(Right.Login);
-				}
-
-				User u = new User();
-				u.setFirstname(firstname);
-				u.setLogin(login);
-				u.setLastname(lastname);
-				u.setAge(age);
-				u.setAddress(a);
-				u.setSendSMS(sendSMS);
-				u.setRights(rights);
-				u.setLastlogin(new Date());
-				u.setSalutation(Salutation.mr);
-				u.setActivatehash(hash);
-				u.setTimeZoneId(timezone.getID());
-				u.setForceTimeZoneCheck(forceTimeZoneCheck);
-				if (!Strings.isEmpty(u.getExternalType())) {
-					u.setType(Type.external);
+				if (sendConfirmation() && u.getRights().contains(Right.Login)) {
+					u.getRights().remove(Right.Login);
 				}
 
-				u.setUserOffers(userOffers);
-				u.setUserSearchs(userSearchs);
-				u.setShowContactData(showContactData);
-				u.setShowContactDataToContacts(showContactDataToContacts);
+				u.setActivatehash(ahash);
 
 				// this is needed cause the language is not a needed data at registering
-				u.setLanguageId(languageId != 0 ? languageId : 1);
 				if (!Strings.isEmpty(password)) {
 					u.updatePassword(cfgDao, password);
 				}
-				if (groups != null) {
-					for (Long grpId : groups) {
-						u.getGroupUsers().add(new GroupUser(groupDao.get(grpId), u));
-					}
-				}
 				u = userDao.update(u, null);
 				log.debug("Added user-Id " + u.getId());
 
-				if (a.getId() != null && u.getId() != null) {
+				if (u.getId() != null) {
 					return u;
 				}
 			} else {
@@ -351,7 +270,7 @@ public class UserManager implements IUserManager {
 		String pass = Base64.encodeBase64String(rawPass);
 		// check if the user already exists and register new one if it's needed
 		if (u == null) {
-			u = userDao.getNewUserInstance(null);
+			u = getNewUserInstance(null);
 			u.setType(Type.oauth);
 			u.getRights().remove(Right.Login);
 			u.setDomainId(serverId);
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index 4a19aa4..0394b5a 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -121,6 +121,8 @@ public class OpenmeetingsVariables {
 	private static String wicketApplicationName = null;
 	private static String applicationName = null;
 	private static int extProcessTtl = 20;
+	private static int minLoginLength = USER_LOGIN_MINIMUM_LENGTH;
+	private static int minPasswdLength = USER_PASSWORD_MINIMUM_LENGTH;
 	private static JSONObject roomSettings = new JSONObject();
 	private static boolean initComplete = false;
 	private static long maxUploadSize = DEFAULT_MAX_UPLOAD_SIZE;
@@ -267,4 +269,20 @@ public class OpenmeetingsVariables {
 		}
 		return appClass;
 	}
+
+	public static int getMinLoginLength() {
+		return minLoginLength;
+	}
+
+	public static void setMinLoginLength(int length) {
+		minLoginLength = length;
+	}
+
+	public static int getMinPasswdLength() {
+		return minPasswdLength;
+	}
+
+	public static void setMinPasswdLength(int length) {
+		minPasswdLength = length;
+	}
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index 786c533..880c411 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -18,11 +18,11 @@
  */
 package org.apache.openmeetings.web.admin.users;
 
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
 import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
-import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
@@ -119,9 +119,9 @@ public class UserForm extends AdminBaseForm<User> {
 	protected void onInitialize() {
 		super.onInitialize();
 		add(password.setResetPassword(false).setLabel(Model.of(getString("110"))).setRequired(false)
-				.add(passValidator = new StrongPasswordValidator(getMinPasswdLength(cfgDao), getModelObject())));
+				.add(passValidator = new StrongPasswordValidator(getModelObject())));
 		login.setLabel(Model.of(getString("108")));
-		add(login.add(minimumLength(getMinLoginLength(cfgDao))));
+		add(login.add(minimumLength(getMinLoginLength())));
 
 		add(new DropDownChoice<>("type", Arrays.asList(Type.values())).add(new OnChangeAjaxBehavior() {
 			private static final long serialVersionUID = 1L;
@@ -236,7 +236,7 @@ public class UserForm extends AdminBaseForm<User> {
 
 	@Override
 	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
-		setModelObject(userDao.getNewUserInstance(userDao.get(getUserId())));
+		setModelObject(getNewUserInstance(userDao.get(getUserId())));
 		update(target);
 	}
 
@@ -246,7 +246,7 @@ public class UserForm extends AdminBaseForm<User> {
 		if (user.getId() != null) {
 			user = userDao.get(user.getId());
 		} else {
-			user = userDao.getNewUserInstance(null);
+			user = getNewUserInstance(null);
 		}
 		setModelObject(user);
 		update(target);
@@ -254,7 +254,7 @@ public class UserForm extends AdminBaseForm<User> {
 
 	private void deleteUser(AjaxRequestTarget target) {
 		userDao.delete(getModelObject(), getUserId());
-		setModelObject(userDao.getNewUserInstance(userDao.get(getUserId())));
+		setModelObject(getNewUserInstance(userDao.get(getUserId())));
 		update(target);
 	}
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
index 43935e2..38794c2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.web.admin.users;
 
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
@@ -108,7 +109,7 @@ public class UsersPanel extends AdminBasePanel {
 			}
 		};
 
-		form = new UserForm("form", listContainer, userDao.getNewUserInstance(userDao.get(getUserId())), warning);
+		form = new UserForm("form", listContainer, getNewUserInstance(userDao.get(getUserId())), warning);
 		form.showNewRecord();
 		add(form, warning);
 		super.onInitialize();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index 45cd5a2..157b9b1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.web.app;
 
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
 import static org.apache.openmeetings.util.CalendarPatterns.ISO8601_FULL_FORMAT_STRING;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS;
@@ -235,7 +236,7 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
 				if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalUserId())) {
 					User user = userDao.getExternalUser(remoteUser.getExternalUserId(), remoteUser.getExternalUserType());
 					if (user == null) {
-						user = userDao.getNewUserInstance(null);
+						user = getNewUserInstance(null);
 						user.setFirstname(remoteUser.getFirstname());
 						user.setLastname(remoteUser.getLastname());
 						user.setLogin(remoteUser.getUsername());
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index 5c16c9f..fdff3bb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.web.pages.auth;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 import static org.apache.openmeetings.web.app.Application.urlForPage;
 
 import java.util.Arrays;
@@ -28,10 +29,8 @@ import java.util.UUID;
 
 import org.apache.directory.api.util.Strings;
 import org.apache.openmeetings.core.mail.MailHandler;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.db.util.UserHelper;
 import org.apache.openmeetings.service.mail.template.ResetPasswordTemplate;
 import org.apache.openmeetings.web.common.Captcha;
 import org.apache.openmeetings.web.pages.ResetPage;
@@ -121,7 +120,7 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 						error(getString("234"));
 					}
 				}
-				if (type == Type.login && n.length() < UserHelper.getMinLoginLength(cfgDao)) {
+				if (type == Type.login && n.length() < getMinLoginLength()) {
 					error(getString("104"));
 				}
 			}
@@ -130,8 +129,6 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 	private SignInDialog s;
 	MessageDialog confirmDialog;
 	@SpringBean
-	private ConfigurationDao cfgDao;
-	@SpringBean
 	private UserDao userDao;
 	@SpringBean
 	private MailHandler mailHandler;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
index 7498fda..598c9ca 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
@@ -18,18 +18,14 @@
  */
 package org.apache.openmeetings.web.pages.auth;
 
-import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.TimeZone;
-import java.util.UUID;
 
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -192,18 +188,9 @@ public class RegisterDialog extends NonClosableDialog<String> {
 
 	@Override
 	protected void onSubmit(AjaxRequestTarget target) {
-		String hash = UUID.randomUUID().toString();
-
 		try {
-			userManager.registerUserInit(UserDao.getDefaultRights(), login, password, lastName
-					, firstName, email, null /* age/birthday */, "" /* street */
-					, "" /* additionalname */, "" /* fax */, "" /* zip */, country
-					, "" /* town */, lang, true /* sendWelcomeMessage */
-					, Arrays.asList(cfgDao.getLong(CONFIG_DEFAULT_GROUP_ID, null)),
-					"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzModel.getObject()),
-					false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
-					true /* showContactDataToContacts */, hash);
-
+			userManager.registerUser(login, password, lastName
+					, firstName, email, country, lang, tzModel.getObject());
 		} catch (Exception e) {
 			log.error("[registerUser]", e);
 		}
@@ -243,8 +230,8 @@ public class RegisterDialog extends NonClosableDialog<String> {
 			super.onInitialize();
 			firstNameField.setLabel(Model.of(getString("117")));
 			lastNameField.setLabel(Model.of(getString("136")));
-			loginField.add(minimumLength(getMinLoginLength(cfgDao))).setLabel(Model.of(getString("114")));
-			passwordField.setResetPassword(true).add(new StrongPasswordValidator(getMinPasswdLength(cfgDao), new User()) {
+			loginField.add(minimumLength(getMinLoginLength())).setLabel(Model.of(getString("114")));
+			passwordField.setResetPassword(true).add(new StrongPasswordValidator(new User()) {
 				private static final long serialVersionUID = 1L;
 
 				@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
index 5e61c65..e3726c3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
@@ -18,13 +18,10 @@
  */
 package org.apache.openmeetings.web.pages.auth;
 
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
-
 import java.util.Arrays;
 import java.util.List;
 
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.Application;
@@ -54,8 +51,6 @@ public class ResetPasswordDialog extends NonClosableDialog<String> {
 	private final User user;
 	MessageDialog confirmReset;
 	@SpringBean
-	private ConfigurationDao cfgDao;
-	@SpringBean
 	private UserDao userDao;
 
 	public ResetPasswordDialog(String id, final User user) {
@@ -142,7 +137,7 @@ public class ResetPasswordDialog extends NonClosableDialog<String> {
 			login.setOutputMarkupId(true);
 			add(password = new PasswordTextField("password", new Model<String>()));
 			password.setLabel(Model.of(getString("328"))).setOutputMarkupId(true);
-			password.setRequired(false).add(new StrongPasswordValidator(getMinPasswdLength(cfgDao), user));
+			password.setRequired(false).add(new StrongPasswordValidator(user));
 			add(confirmPassword = new PasswordTextField("confirmPassword", new Model<String>()));
 			confirmPassword.setLabel(Model.of(getString("116"))).setOutputMarkupId(true);
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index 089fb81..d746010 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.pages.install;
 
 import static org.apache.openmeetings.core.converter.BaseConverter.EXEC_EXT;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
 import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
 import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONE_SET;
 import static org.apache.wicket.validation.validator.RangeValidator.range;
@@ -425,7 +424,7 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> {
 			add(new RequiredTextField<String>("username").setLabel(Model.of(getString("install.wizard.params.step1.username"))).add(minimumLength(USER_LOGIN_MINIMUM_LENGTH)));
 			add(new PasswordTextField("password")
 					.setResetPassword(false).setLabel(Model.of(getString("install.wizard.params.step1.password")))
-					.add(new StrongPasswordValidator(USER_PASSWORD_MINIMUM_LENGTH, new User())));
+					.add(new StrongPasswordValidator(new User())));
 			add(new RequiredTextField<String>("email").setLabel(Model.of(getString("install.wizard.params.step1.email"))).add(RfcCompliantEmailAddressValidator.getInstance()));
 			add(new RequiredTextField<String>("group").setLabel(Model.of(getString("install.wizard.params.step1.group"))));
 		}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
index 758377e..95614a2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
@@ -18,14 +18,12 @@
  */
 package org.apache.openmeetings.web.user.profile;
 
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.Arrays;
 import java.util.List;
 
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.Form;
@@ -75,8 +73,6 @@ public class ChangePasswordDialog extends AbstractFormDialog<String> {
 	private final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
 	@SpringBean
 	private UserDao userDao;
-	@SpringBean
-	private ConfigurationDao cfgDao;
 
 	public ChangePasswordDialog(String id) {
 		super(id, "");
@@ -94,7 +90,7 @@ public class ChangePasswordDialog extends AbstractFormDialog<String> {
 			}
 		};
 		cancel = new DialogButton("cancel", Model.of(getString("lbl.cancel")));
-		passValidator = new StrongPasswordValidator(getMinPasswdLength(cfgDao), userDao.get(getUserId()));
+		passValidator = new StrongPasswordValidator(userDao.get(getUserId()));
 		add(form.add(
 				current.setLabel(Model.of(getString("current.password"))).setRequired(true)
 				, pass.setLabel(Model.of(getString("328"))).add(passValidator)
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
index 08bfad1..6d6f809 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
@@ -32,7 +32,6 @@ import org.apache.openmeetings.AbstractJUnitDefaults;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
 import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.junit.After;
 import org.junit.Test;
@@ -47,8 +46,6 @@ public class TestOldBackups extends AbstractJUnitDefaults {
 	@Autowired
 	private BackupImport backupController;
 	@Autowired
-	private GroupDao groupDao;
-	@Autowired
 	private RoomDao roomDao;
 	@Autowired
 	private AppointmentDao appointmentDao;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
index 00b13ba..749ab45 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
@@ -21,21 +21,16 @@ package org.apache.openmeetings.domain;
 import static org.junit.Assert.assertNotNull;
 
 import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestAddGroup extends AbstractJUnitDefaults {
 	private static final Logger log = LoggerFactory.getLogger(TestAddGroup.class);
 
-	@Autowired
-	private GroupDao groupDao;
-
 	@Test
 	public void testAddingGroup() {
 		Group o = new Group();
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
index e48811e..df0165a 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
@@ -28,15 +28,11 @@ import java.util.List;
 import java.util.UUID;
 
 import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestUserContact extends AbstractWicketTester {
-	@Autowired
-	private GroupDao groupDao;
 
 	@Test
 	public void testGetUser() {
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
index fcf756c..c46e754 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.UUID;
 
 import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
@@ -41,8 +40,6 @@ public class TestUserGroup extends AbstractJUnitDefaults {
 	public static final String GROUP_NAME = "Test Group";
 	@Autowired
 	private GroupUserDao groupUserDao;
-	@Autowired
-	private GroupDao groupDao;
 
 	private User getValidUser() {
 		for (User u : userDao.getAllBackupUsers()) {
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index 7a6d14e..03f8f23 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -19,13 +19,12 @@
 package org.apache.openmeetings.webservice;
 
 import static org.apache.openmeetings.db.dto.basic.ServiceResult.UNKNOWN;
-import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultTimezone;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
 import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
 
-import java.util.Date;
+import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import java.util.Locale;
 
@@ -44,7 +43,6 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
@@ -87,8 +85,6 @@ public class UserWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(UserWebService.class);
 
 	@Autowired
-	private ConfigurationDao cfgDao;
-	@Autowired
 	private UserManager userManager;
 	@Autowired
 	private IClientManager clientManager;
@@ -178,7 +174,7 @@ public class UserWebService extends BaseWebService {
 			if (user.getLanguageId() == null) {
 				user.setLanguageId(1L);
 			}
-			IValidator<String> passValidator = new StrongPasswordValidator(true, getMinPasswdLength(cfgDao), user.get(userDao));
+			IValidator<String> passValidator = new StrongPasswordValidator(true, user.get(userDao));
 			Validatable<String> passVal = new Validatable<>(user.getPassword());
 			passValidator.validate(passVal);
 			if (!passVal.isValid()) {
@@ -189,12 +185,12 @@ public class UserWebService extends BaseWebService {
 				log.debug("addNewUser::weak password '{}', msg: {}", user.getPassword(), sb);
 				throw new ServiceException(sb.toString());
 			}
-			Object _user = userManager.registerUser(user.getLogin(), user.getPassword(),
-					user.getLastname(), user.getFirstname(), user.getAddress().getEmail(), new Date(), user.getAddress().getStreet(),
-					user.getAddress().getAdditionalname(), user.getAddress().getFax(), user.getAddress().getZip(), user.getAddress().getCountry()
-					, user.getAddress().getTown(), user.getLanguageId(),
-					"", false, true, // generate SIP Data if the config is enabled
-					tz, confirm);
+			Object _user;
+			try {
+				_user = userManager.registerUser(user.get(userDao), user.getPassword(), null);
+			} catch (NoSuchAlgorithmException | OmException e) {
+				throw new ServiceException("Unexpected error while creating user");
+			}
 
 			if (_user == null) {
 				throw new ServiceException(UNKNOWN.getMessage());

-- 
To stop receiving notification emails like this one, please contact
solomax@apache.org.