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/01/26 03:53:14 UTC
[06/13] openmeetings git commit: [OPENMEETINGS-1812] admin password
is checked during delete of privileged user
[OPENMEETINGS-1812] admin password is checked during delete of privileged user
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/88c4d903
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/88c4d903
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/88c4d903
Branch: refs/heads/wicket-defer-all
Commit: 88c4d9037d8837cbfa6dc9ed15355cc49a493e33
Parents: d0512ba
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Thu Jan 11 22:52:46 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Thu Jan 11 22:52:46 2018 +0700
----------------------------------------------------------------------
.../web/admin/users/PasswordDialog.java | 19 +++++++++++++++++--
.../openmeetings/web/admin/users/UserForm.java | 15 +++++++++++++--
2 files changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/88c4d903/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
index cac56a1..641ed8a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
@@ -26,9 +26,11 @@ import java.util.List;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.model.Model;
+import org.danekja.java.util.function.serializable.SerializableConsumer;
import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
@@ -42,6 +44,7 @@ public class PasswordDialog extends AbstractFormDialog<String> {
protected final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
private final Form<String> form = new Form<>("form");
private final PasswordTextField pass = new PasswordTextField("password");
+ private SerializableConsumer<AjaxRequestTarget> action = null;
public PasswordDialog(String id) {
super(id, "");
@@ -56,7 +59,7 @@ public class PasswordDialog extends AbstractFormDialog<String> {
setTitle(Model.of(getString("537")));
ok = new DialogButton("ok", getString("54"));
cancel = new DialogButton("cancel", getString("lbl.cancel"));
- add(form.add(feedback, pass.setRequired(false).setLabel(Model.of(getString("110")))));
+ add(form.add(feedback, pass.setRequired(false).setLabel(Model.of(getString("110"))).setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true)));
super.onInitialize();
}
@@ -81,19 +84,31 @@ public class PasswordDialog extends AbstractFormDialog<String> {
}
@Override
+ protected void onOpen(IPartialPageRequestHandler handler) {
+ handler.add(pass.setModelObject(""));
+ super.onOpen(handler);
+ }
+
+ @Override
public void onClick(AjaxRequestTarget target, DialogButton button) {
if (!form.hasError() || !button.equals(ok)) {
super.onClick(target, button);
}
}
+ public void setAction(SerializableConsumer<AjaxRequestTarget> action) {
+ this.action = action;
+ }
+
@Override
protected void onSubmit(AjaxRequestTarget target) {
final UserForm uf = getUserForm();
if (uf.isAdminPassRequired()) {
final UserDao dao = getBean(UserDao.class);
if (dao.verifyPassword(getUserId(), pass.getConvertedInput())) {
- uf.saveUser(target);
+ if (action != null) {
+ action.accept(target);
+ }
} else {
form.error(getString("error.bad.password"));
target.add(feedback);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/88c4d903/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
----------------------------------------------------------------------
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 00a1733..a911d88 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
@@ -71,6 +71,7 @@ import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.time.Duration;
+import org.danekja.java.util.function.serializable.SerializableConsumer;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.wicketstuff.select2.Response;
@@ -183,6 +184,7 @@ public class UserForm extends AdminBaseForm<User> {
@Override
protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
if (isAdminPassRequired()) {
+ adminPass.setAction((SerializableConsumer<AjaxRequestTarget>)t -> saveUser(t));
adminPass.open(target);
} else {
saveUser(target);
@@ -245,14 +247,23 @@ public class UserForm extends AdminBaseForm<User> {
update(target);
}
- @Override
- protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+ private void deleteUser(AjaxRequestTarget target) {
UserDao userDao = getBean(UserDao.class);
userDao.delete(getModelObject(), getUserId());
setModelObject(userDao.getNewUserInstance(userDao.get(getUserId())));
update(target);
}
+ @Override
+ protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+ if (isAdminPassRequired()) {
+ adminPass.setAction((SerializableConsumer<AjaxRequestTarget>)t -> deleteUser(t));
+ adminPass.open(target);
+ } else {
+ deleteUser(target);
+ }
+ }
+
public void updateDomain(AjaxRequestTarget target) {
User u = getModelObject();
final Map<Long, String> values = new HashMap<>();