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/10/09 06:59:46 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1952] additional static methods for some configs, to reduce DB load

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 6300082  [OPENMEETINGS-1952] additional static methods for some configs, to reduce DB load
6300082 is described below

commit 63000825aa62613c9cec08cae96aae0f6e8446bb
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Oct 9 13:52:30 2018 +0700

    [OPENMEETINGS-1952] additional static methods for some configs, to reduce DB load
---
 .../openmeetings/core/remote/MobileService.java      |  5 ++---
 .../openmeetings/db/dao/basic/ConfigurationDao.java  | 20 ++++++++++++++++++++
 .../openmeetings/service/mail/EmailManager.java      |  8 ++------
 .../openmeetings/util/OpenmeetingsVariables.java     | 18 ++++++++++++++++++
 .../openmeetings/web/admin/users/UserForm.java       |  7 ++-----
 .../org/apache/openmeetings/web/app/UserManager.java |  7 ++-----
 .../openmeetings/web/pages/auth/RegisterDialog.java  | 11 ++++-------
 7 files changed, 50 insertions(+), 26 deletions(-)

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 bf0e011..1ff1a6d 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,11 +20,11 @@ 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_EMAIL_VERIFICATION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_STATUS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterFrontend;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterOauth;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendVerificationEmail;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -152,8 +152,7 @@ public class MobileService {
 				} else if (user instanceof User) {
 					User u = (User)user;
 					String baseURL = getBaseUrl();
-					boolean sendConfirmation = !Strings.isEmpty(baseURL)
-							&& cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
+					boolean sendConfirmation = !Strings.isEmpty(baseURL) && isSendVerificationEmail();
 					if (sendConfirmation) {
 						add(result, PARAM_STATUS, -666L);
 					} else {
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 1731287..585dfa2 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
@@ -27,6 +27,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANG;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_TIMEZONE;
+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.CONFIG_EXT_PROCESS_TTL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FNAME_MIN_LENGTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
@@ -79,6 +81,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.setMinLoginLeng
 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.setSendRegisterEmail;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setSendVerificationEmail;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setSipContext;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setSipEnabled;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setVideoPreset;
@@ -388,6 +392,12 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 			case CONFIG_REGISTER_OAUTH:
 				reloadAllowRegisterOauth();
 				break;
+			case CONFIG_EMAIL_VERIFICATION:
+				reloadSendVerificationEmail();
+				break;
+			case CONFIG_EMAIL_AT_REGISTER:
+				reloadSendRegisterEmail();
+				break;
 		}
 		return entity;
 	}
@@ -503,6 +513,14 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		setAllowRegisterOauth(getBool(CONFIG_REGISTER_OAUTH, false));
 	}
 
+	private void reloadSendVerificationEmail() {
+		setSendVerificationEmail(getBool(CONFIG_EMAIL_VERIFICATION, false));
+	}
+
+	private void reloadSendRegisterEmail() {
+		setSendRegisterEmail(getBool(CONFIG_EMAIL_AT_REGISTER, false));
+	}
+
 	public void reinit() {
 		reloadMaxUpload();
 		reloadCrypt();
@@ -527,6 +545,8 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		reloadAllowRegisterFront();
 		reloadAllowRegisterSoap();
 		reloadAllowRegisterOauth();
+		reloadSendVerificationEmail();
+		reloadSendRegisterEmail();
 	}
 
 	private JSONObject reloadRoomSettings() {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
index b64dd84..d1d5bde 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
@@ -19,13 +19,12 @@
 package org.apache.openmeetings.service.mail;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
 
 import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.core.mail.MailHandler;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.service.mail.template.RegisterUserTemplate;
 import org.apache.wicket.Application;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -43,8 +42,6 @@ public class EmailManager {
 	private static final Logger log = LoggerFactory.getLogger(EmailManager.class);
 
 	@Autowired
-	private ConfigurationDao cfgDao;
-	@Autowired
 	private MailHandler mailHandler;
 
 	private static IApplication getApp() {
@@ -66,12 +63,11 @@ public class EmailManager {
 	 */
 	public void sendMail(String username, String email, String hash, Boolean sendEmailWithVerficationCode, Long langId) {
 		log.debug("sendMail:: username = {}, email = {}", username, email);
-		boolean sendEmailAtRegister = cfgDao.getBool(CONFIG_EMAIL_AT_REGISTER, false);
 
 		ensureApplication(langId != null ? langId : getDefaultLang());
 		String link = getApp().urlForActivatePage(new PageParameters().add("u",  hash));
 
-		if (sendEmailAtRegister) {
+		if (isSendRegisterEmail()) {
 			mailHandler.send(email, getString("512")
 				, RegisterUserTemplate.getEmail(username, email, sendEmailWithVerficationCode ? link : null));
 		}
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 d261193..47179aa 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
@@ -144,6 +144,8 @@ public class OpenmeetingsVariables {
 	private static boolean allowRegisterFrontend = false;
 	private static boolean allowRegisterSoap = false;
 	private static boolean allowRegisterOauth = false;
+	private static boolean sendVerificationEmail = false;
+	private static boolean sendRegisterEmail = false;
 
 	private OpenmeetingsVariables() {}
 
@@ -366,4 +368,20 @@ public class OpenmeetingsVariables {
 	public static void setAllowRegisterOauth(boolean allow) {
 		allowRegisterOauth = allow;
 	}
+
+	public static boolean isSendVerificationEmail() {
+		return sendVerificationEmail;
+	}
+
+	public static void setSendVerificationEmail(boolean send) {
+		sendVerificationEmail = send;
+	}
+
+	public static boolean isSendRegisterEmail() {
+		return sendRegisterEmail;
+	}
+
+	public static void setSendRegisterEmail(boolean send) {
+		sendRegisterEmail = send;
+	}
 }
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 466432e..92934e0 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
@@ -21,8 +21,8 @@ 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.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
 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;
@@ -36,7 +36,6 @@ import java.util.Set;
 import java.util.UUID;
 
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -96,8 +95,6 @@ public class UserForm extends AdminBaseForm<User> {
 	private final DropDownChoice<Long> domainId = new DropDownChoice<>("domainId");
 	private final PasswordDialog adminPass = new PasswordDialog("adminPass");
 	@SpringBean
-	private ConfigurationDao cfgDao;
-	@SpringBean
 	private UserDao userDao;
 	@SpringBean
 	private EmailManager emainManager;
@@ -243,7 +240,7 @@ public class UserForm extends AdminBaseForm<User> {
 	private void saveUser(AjaxRequestTarget target, String pass) {
 		User u = getModelObject();
 		final boolean isNew = u.getId() == null;
-		boolean sendEmailAtRegister = cfgDao.getBool(CONFIG_EMAIL_AT_REGISTER, false);
+		boolean sendEmailAtRegister = isSendRegisterEmail();
 		if (isNew && sendEmailAtRegister) {
 			u.setActivatehash(UUID.randomUUID().toString());
 		}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
index 523509b..248faba 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
@@ -21,12 +21,12 @@ 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.OmException.UNKNOWN;
-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.getDefaultGroup;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterFrontend;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendVerificationEmail;
 
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
@@ -34,7 +34,6 @@ import java.util.Date;
 import java.util.Locale;
 import java.util.UUID;
 
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
@@ -64,8 +63,6 @@ public class UserManager implements IUserManager {
 	private static final Logger log = LoggerFactory.getLogger(UserManager.class);
 
 	@Autowired
-	private ConfigurationDao cfgDao;
-	@Autowired
 	private GroupDao groupDao;
 	@Autowired
 	private UserDao userDao;
@@ -74,7 +71,7 @@ public class UserManager implements IUserManager {
 
 	private boolean sendConfirmation() {
 		String baseURL = getBaseUrl();
-		return !Strings.isEmpty(baseURL) && cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
+		return !Strings.isEmpty(baseURL) && isSendVerificationEmail();
 	}
 
 	/**
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 95d9e90..9ed3e00 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,17 +18,16 @@
  */
 package org.apache.openmeetings.web.pages.auth;
 
-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.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendVerificationEmail;
 import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
 
 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.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.Address;
@@ -84,8 +83,6 @@ public class RegisterDialog extends NonClosableDialog<String> {
 	private boolean sendConfirmation = false;
 	private boolean sendEmailAtRegister = false;
 	@SpringBean
-	private ConfigurationDao cfgDao;
-	@SpringBean
 	private IUserManager userManager;
 	@SpringBean
 	private UserDao userDao;
@@ -155,8 +152,8 @@ public class RegisterDialog extends NonClosableDialog<String> {
 	@Override
 	protected void onOpen(IPartialPageRequestHandler handler) {
 		String baseURL = getBaseUrl();
-		sendEmailAtRegister = cfgDao.getBool(CONFIG_EMAIL_AT_REGISTER, false);
-		sendConfirmation = !Strings.isEmpty(baseURL) && cfgDao.getBool(CONFIG_EMAIL_VERIFICATION, false);
+		sendEmailAtRegister = isSendRegisterEmail();
+		sendConfirmation = !Strings.isEmpty(baseURL) && isSendVerificationEmail();
 		String messageCode = "account.created";
 		if (sendConfirmation && sendEmailAtRegister) {
 			messageCode = "warn.notverified";