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/07/26 11:13:55 UTC

[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1898] user details can be changed without password for oauth user

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

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


The following commit(s) were added to refs/heads/4.0.x by this push:
     new 5479834  [OPENMEETINGS-1898] user details can be changed without password for oauth user
5479834 is described below

commit 5479834ac028775705130445e9ab6715941e8a50
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jul 26 18:13:45 2018 +0700

    [OPENMEETINGS-1898] user details can be changed without password for oauth user
---
 .../apache/openmeetings/db/dao/user/UserDao.java   |  1 -
 .../openmeetings/web/user/profile/ProfileForm.html |  2 +-
 .../openmeetings/web/user/profile/ProfileForm.java | 24 +++++++++++++---------
 3 files changed, 15 insertions(+), 12 deletions(-)

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 b4f2f3d..b03d503 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
@@ -103,7 +103,6 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 		user.setLanguageId(getDefaultLang());
 		user.setTimeZoneId(getTimeZone(currentUser).getID());
 		user.setForceTimeZoneCheck(false);
-		user.setSendSMS(false);
 		user.setAge(new Date());
 		user.setLastlogin(new Date());
 		Address address = new Address();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.html
index b836d6e..006634c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.html
@@ -29,7 +29,7 @@
 						<wicket:message key="143" />
 					</legend>
 					<button type="button" wicket:id="changePwd" id="changePwd" style="margin-left: 180px;"><wicket:message key="327"/></button>
-					<div class="formelement">
+					<div class="formelement" wicket:enclosure="passwd">
 						<label wicket:for="passwd"><wicket:message key="current.password" /></label><input type="password" wicket:id="passwd" />
 					</div>
 					<form wicket:id="general"></form>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
index e29b2eb..28e61e4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
@@ -54,18 +54,20 @@ public class ProfileForm extends Form<User> {
 	private final PasswordTextField passwd = new PasswordTextField("passwd", new Model<String>());
 	private final GeneralUserForm userForm;
 	private final ChangePasswordDialog chPwdDlg;
+	private boolean checkPassword;
 	private FormActionsPanel<User> actions;
 
 	public ProfileForm(String id, final ChangePasswordDialog chPwdDlg) {
 		super(id, new CompoundPropertyModel<>(getBean(UserDao.class).get(getUserId())));
 		userForm = new GeneralUserForm("general", getModel(), false);
 		this.chPwdDlg = chPwdDlg;
+		this.checkPassword = User.Type.oauth != getModelObject().getType();
 	}
 
 	@Override
 	protected void onInitialize() {
 		super.onInitialize();
-		add(passwd.setLabel(Model.of(getString("current.password"))).setRequired(true));
+		add(passwd.setLabel(Model.of(getString("current.password"))).setRequired(true).setVisible(checkPassword));
 
 		add(actions = new FormActionsPanel<User>("buttons", this) {
 			private static final long serialVersionUID = 1L;
@@ -111,7 +113,7 @@ public class ProfileForm extends Form<User> {
 			protected void onEvent(AjaxRequestTarget target) {
 				chPwdDlg.open(target);
 			}
-		}));
+		}).setVisible(checkPassword));
 		add(userForm);
 		add(new UploadableProfileImagePanel("img", getUserId()));
 		add(new ComunityUserForm("comunity", getModel()));
@@ -129,14 +131,16 @@ public class ProfileForm extends Form<User> {
 
 	@Override
 	protected void onValidate() {
-		String p = passwd.getConvertedInput();
-		if (!Strings.isEmpty(p) && !getBean(UserDao.class).verifyPassword(getModelObject().getId(), p)) {
-			error(getString("231"));
-			// add random timeout
-			try {
-				Thread.sleep(6 + (long)(10 * Math.random() * 1000));
-			} catch (InterruptedException e) {
-				log.error("Unexpected exception while sleeping", e);
+		if (checkPassword) {
+			String p = passwd.getConvertedInput();
+			if (!Strings.isEmpty(p) && !getBean(UserDao.class).verifyPassword(getModelObject().getId(), p)) {
+				error(getString("231"));
+				// add random timeout
+				try {
+					Thread.sleep(6 + (long)(10 * Math.random() * 1000));
+				} catch (InterruptedException e) {
+					log.error("Unexpected exception while sleeping", e);
+				}
 			}
 		}
 		super.onValidate();