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 2020/12/06 15:24:04 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2533] group
admin should have no ability to create new group
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 be17124 [OPENMEETINGS-2533] group admin should have no ability to create new group
be17124 is described below
commit be17124a323c47a005cbcaae1ed001d846e59030
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Dec 6 22:23:47 2020 +0700
[OPENMEETINGS-2533] group admin should have no ability to create new group
---
.../openmeetings/web/admin/AdminActionsPanel.java | 13 +++++++++----
.../openmeetings/web/admin/AdminBaseForm.java | 14 ++++++++------
.../web/admin/configurations/ConfigForm.java | 2 +-
.../web/admin/configurations/ConfigsPanel.java | 4 ++--
.../openmeetings/web/admin/groups/GroupForm.java | 3 ++-
.../openmeetings/web/admin/groups/GroupsPanel.java | 22 +++++++++++++++++-----
.../openmeetings/web/admin/labels/LabelsForm.java | 2 +-
.../openmeetings/web/admin/labels/LangPanel.java | 4 ++--
.../openmeetings/web/admin/ldaps/LdapForm.java | 2 +-
.../openmeetings/web/admin/ldaps/LdapsPanel.java | 4 ++--
.../openmeetings/web/admin/oauth/OAuthForm.java | 2 +-
.../openmeetings/web/admin/oauth/OAuthPanel.java | 4 ++--
.../openmeetings/web/admin/rooms/RoomForm.java | 2 +-
.../openmeetings/web/admin/rooms/RoomsPanel.java | 2 +-
.../openmeetings/web/admin/users/UserForm.java | 2 +-
.../openmeetings/web/admin/users/UsersPanel.java | 4 ++--
.../openmeetings/web/common/FormActionsPanel.java | 6 +++---
17 files changed, 56 insertions(+), 36 deletions(-)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
index 2cb59f2..68f2cd9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
@@ -32,6 +32,7 @@ public abstract class AdminActionsPanel<T> extends FormActionsPanel<T> {
private static final long serialVersionUID = 1L;
private final Label newRecord = new Label("newRecord", Model.of(""));
private final Form<T> form;
+ private AjaxButton newBtn;
private AjaxLink<Void> delBtn;
private AjaxLink<Void> restoreBtn;
@@ -45,7 +46,7 @@ public abstract class AdminActionsPanel<T> extends FormActionsPanel<T> {
newRecord.setDefaultModelObject(getString("155"));
add(newRecord.setVisible(false).setOutputMarkupId(true));
- final AjaxButton newBtn = new AjaxButton("btn-new", form) {
+ newBtn = new AjaxButton("btn-new", form) {
private static final long serialVersionUID = 1L;
@Override
@@ -75,7 +76,7 @@ public abstract class AdminActionsPanel<T> extends FormActionsPanel<T> {
public void onClick(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
- setNewVisible(false);
+ setNewRecordVisible(false);
onDeleteSubmit(target, form);
}
};
@@ -87,7 +88,7 @@ public abstract class AdminActionsPanel<T> extends FormActionsPanel<T> {
public void onClick(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
- setNewVisible(false);
+ setNewRecordVisible(false);
onRestoreSubmit(target, form);
}
};
@@ -96,8 +97,12 @@ public abstract class AdminActionsPanel<T> extends FormActionsPanel<T> {
super.onInitialize();
}
- @Override
public void setNewVisible(boolean visible) {
+ newBtn.setVisible(visible);
+ }
+
+ @Override
+ public void setNewRecordVisible(boolean visible) {
newRecord.setVisible(visible);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
index dac21ed..14821fb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
@@ -41,7 +41,11 @@ public abstract class AdminBaseForm<T> extends Form<T> {
protected AdminBaseForm(String id, IModel<T> object) {
super(id, object);
+ }
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
savePanel = new AdminActionsPanel<>("buttons", this) {
private static final long serialVersionUID = 1L;
@@ -81,12 +85,6 @@ public abstract class AdminBaseForm<T> extends Form<T> {
}
};
add(savePanel);
- }
-
- @Override
- protected void onInitialize() {
- super.onInitialize();
-
// attach an ajax validation behavior to all form component's keydown
// event and throttle it down to once per second
add(validationBehavior);
@@ -96,6 +94,10 @@ public abstract class AdminBaseForm<T> extends Form<T> {
savePanel.setNewVisible(visible);
}
+ public void setNewRecordVisible(boolean visible) {
+ savePanel.setNewRecordVisible(visible);
+ }
+
public void setDelVisible(boolean visible) {
savePanel.setDelVisible(visible);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
index e4f70f3..15de0d5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
@@ -168,7 +168,7 @@ public class ConfigForm extends AdminBaseForm<Configuration> {
getModelObject().setId(c.getId());
}
setModelObject(cfgDao.update(getModelObject(), WebSession.getUserId()));
- setNewVisible(false);
+ setNewRecordVisible(false);
target.add(listContainer);
refresh(target);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
index 21744f3..efdaa0e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
@@ -67,7 +67,7 @@ public class ConfigsPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
form.setModelObject(c);
target.add(form, listContainer);
}
@@ -92,7 +92,7 @@ public class ConfigsPanel extends AdminBasePanel {
add(navigator);
form = new ConfigForm("form", listContainer, new Configuration());
- form.setNewVisible(true);
+ form.setNewRecordVisible(true);
add(form);
super.onInitialize();
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
index 1bedf92..f0d002a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
@@ -154,6 +154,7 @@ public class GroupForm extends AdminBaseForm<Group> {
super.onInitialize();
final boolean isGroupAdmin = hasGroupAdminLevel(getRights());
setNewVisible(!isGroupAdmin);
+ setNewRecordVisible(!isGroupAdmin);
userToadd.setEnabled(!isGroupAdmin);
add(new RequiredTextField<String>("name").setLabel(new ResourceModel("165")));
add(logo);
@@ -238,7 +239,7 @@ public class GroupForm extends AdminBaseForm<Group> {
usersPanel.update(grpUser);
}
logo.process(Optional.of(target));
- setNewVisible(false);
+ setNewRecordVisible(false);
updateView(target);
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
index 2af6325..2aa075d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
@@ -18,7 +18,11 @@
*/
package org.apache.openmeetings.web.admin.groups;
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
+
+import java.util.Iterator;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.entity.user.Group;
@@ -51,11 +55,12 @@ public class GroupsPanel extends AdminBasePanel {
public GroupsPanel(String id) {
super(id);
- final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
+ }
- //Adding the Group Form
- form = new GroupForm("form", listContainer, new Group());
- add(form);
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
//List view
SearchableDataView<Group> dataView = new SearchableDataView<>("groupList", new SearchableGroupAdminDataProvider<>(GroupDao.class)) {
@@ -75,7 +80,7 @@ public class GroupsPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
form.setModelObject(g);
form.updateView(target);
target.add(listContainer);
@@ -85,6 +90,13 @@ public class GroupsPanel extends AdminBasePanel {
}
};
+ final boolean isGroupAdmin = hasGroupAdminLevel(getRights());
+ Iterator<? extends Group> iter = dataView.getDataProvider().iterator(0, 1);
+ Group g = iter.hasNext() ? iter.next() : new Group();
+ //Adding the Group Form
+ form = new GroupForm("form", listContainer, isGroupAdmin ? g : new Group());
+ add(form);
+
//Paging
add(listContainer.add(dataView).setOutputMarkupId(true));
PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
index c6ab4df..22ef297 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
@@ -75,7 +75,7 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
} catch (Exception e) {
error("Unexpected error while saving label:" + e.getMessage());
}
- setNewVisible(false);
+ setNewRecordVisible(false);
target.add(panel.listContainer);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
index 4d43642..3c36ece 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@ -93,7 +93,7 @@ public class LangPanel extends AdminBasePanel {
language = new AbstractMap.SimpleEntry<>(1L, Locale.ENGLISH);
final LabelsForm form = new LabelsForm("form", this, new StringLabel(null, null));
- form.setNewVisible(true);
+ form.setNewRecordVisible(true);
add(form);
final SearchableDataView<StringLabel> dataView = new SearchableDataView<>(
@@ -124,7 +124,7 @@ public class LangPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(fv);
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
target.add(form, listContainer);
}
});
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
index 920a28c..ab3063f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
@@ -72,7 +72,7 @@ public class LdapForm extends AdminBaseForm<LdapConfig> {
@Override
protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
setModelObject(ldapDao.update(getModelObject(), WebSession.getUserId()));
- setNewVisible(false);
+ setNewRecordVisible(false);
target.add(this, listContainer);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
index a6d0db7..2b23200 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
@@ -68,7 +68,7 @@ public class LdapsPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(lc);
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
target.add(form, listContainer);
}
});
@@ -92,7 +92,7 @@ public class LdapsPanel extends AdminBasePanel {
add(navigator);
form = new LdapForm("form", listContainer, new LdapConfig());
- form.setNewVisible(true);
+ form.setNewRecordVisible(true);
add(form);
super.onInitialize();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
index 61ac9bb..d4163e5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
@@ -152,7 +152,7 @@ public class OAuthForm extends AdminBaseForm<OAuthServer> {
oauthDao.update(getModelObject(), getUserId());
OAuthServer oauthServer = oauthDao.get(getModelObject().getId());
this.setModelObject(oauthServer);
- setNewVisible(false);
+ setNewRecordVisible(false);
target.add(this);
target.add(listContainer);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
index 3ffff79..c988ad7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
@@ -62,7 +62,7 @@ public class OAuthPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(server);
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
target.add(form, listContainer);
}
});
@@ -87,7 +87,7 @@ public class OAuthPanel extends AdminBasePanel {
add(navigator);
form = new OAuthForm("form", listContainer, new OAuthServer());
- form.setNewVisible(true);
+ form.setNewRecordVisible(true);
add(form);
super.onInitialize();
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index aa73236..f0ddae8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -452,7 +452,7 @@ public class RoomForm extends AdminBaseForm<Room> {
}
roomDao.update(getModelObject(), getUserId());
}
- setNewVisible(false);
+ setNewRecordVisible(false);
updateView(target);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
index 62c80a5..c713faa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
@@ -62,7 +62,7 @@ public class RoomsPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
form.setModelObject(roomDao.get(roomId));
form.updateView(target);
target.add(form, listContainer);
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 251156b..39fc92a 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
@@ -277,7 +277,7 @@ public class UserForm extends AdminBaseForm<User> {
private void updateForm(AjaxRequestTarget target) {
setModelObject(userDao.get(getModelObject().getId()));
- setNewVisible(false);
+ setNewRecordVisible(false);
target.add(this, listContainer);
}
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 14b1a2a..729e914 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
@@ -77,7 +77,7 @@ public class UsersPanel extends AdminBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(userDao.get(userId));
- form.setNewVisible(false);
+ form.setNewRecordVisible(false);
form.update(target);
}
});
@@ -111,7 +111,7 @@ public class UsersPanel extends AdminBasePanel {
.addButton(OmModalCloseButton.of("54"));
form = new UserForm("form", listContainer, getNewUserInstance(userDao.get(getUserId())), adminPass, warning);
- form.setNewVisible(true);
+ form.setNewRecordVisible(true);
add(form, warning);
super.onInitialize();
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
index e58dcab..abd9863 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
@@ -72,7 +72,7 @@ public abstract class FormActionsPanel<T> extends Panel {
public void onClick(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
- setNewVisible(false);
+ setNewRecordVisible(false);
onRefreshSubmit(target, form);
}
});
@@ -83,7 +83,7 @@ public abstract class FormActionsPanel<T> extends Panel {
public void onClick(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
- setNewVisible(false);
+ setNewRecordVisible(false);
onPurgeSubmit(target, form);
}
};
@@ -101,7 +101,7 @@ public abstract class FormActionsPanel<T> extends Panel {
*
* @param visible - new visibility
*/
- public void setNewVisible(boolean visible) {
+ public void setNewRecordVisible(boolean visible) {
// for admin only, will be implemented in admin
}