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 2016/11/10 17:39:32 UTC

svn commit: r1769164 - in /openmeetings/application: branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/ branches/3.1.x/openmeetings-we...

Author: solomax
Date: Thu Nov 10 17:39:32 2016
New Revision: 1769164

URL: http://svn.apache.org/viewvc?rev=1769164&view=rev
Log:
[OPENMEETINGS-1488] some actions are filtered for group admins

Modified:
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/forms.css
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/forms.css

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java Thu Nov 10 17:39:32 2016
@@ -79,11 +79,18 @@ public abstract class AdminBaseForm<T> e
 			protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
 				AdminBaseForm.this.onDeleteError(target, form);
 			}
-			
-		};
-		add(savePanel);
 
+			@Override
+			protected boolean isNewBtnVisible() {
+				return AdminBaseForm.this.isNewBtnVisible();
+			}
 
+			@Override
+			protected boolean isDelBtnVisible() {
+				return AdminBaseForm.this.isDelBtnVisible();
+			}
+		};
+		add(savePanel);
 	}
 
 	/**
@@ -92,7 +99,7 @@ public abstract class AdminBaseForm<T> e
 	public void hideNewRecord() {
 		savePanel.hideNewRecord();
 	}
-	
+
 	/**
 	 * @see AdminBaseForm#showNewRecord()
 	 */
@@ -100,6 +107,13 @@ public abstract class AdminBaseForm<T> e
 		savePanel.showNewRecord();
 	}
 
+	protected boolean isNewBtnVisible() {
+		return true;
+	}
+
+	protected boolean isDelBtnVisible() {
+		return true;
+	}
 	/**
 	 * invoked when user press save button
 	 * 

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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
@@ -20,12 +20,8 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 	<wicket:extend>
-		<div class="formNewButton">
-			<input type="submit" value="" wicket:id="ajax-new-button" wicket:message="title:155" />
-		</div>
-		<div class="formCancelButton">
-			<div wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
-		</div>
+		<div class="formNewButton" wicket:id="ajax-new-button" wicket:message="title:155"></div>
+		<div class="formCancelButton" wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
 		<span wicket:id="newRecord"></span>
 	</wicket:extend>
 </html>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java Thu Nov 10 17:39:32 2016
@@ -29,7 +29,7 @@ import org.apache.wicket.model.Model;
 
 public abstract class AdminSavePanel<T> extends FormSaveRefreshPanel<T> {
 	private static final long serialVersionUID = 1L;
-	private Label newRecord;
+	private final Label newRecord;
 	private final Form<T> form;
 	
 	public AdminSavePanel(String id, final Form<T> form) {
@@ -38,9 +38,12 @@ public abstract class AdminSavePanel<T>
 		
 		newRecord = new Label("newRecord", Model.of(Application.getString(344L)));
 		add(newRecord.setVisible(false).setOutputMarkupId(true));
-		
-		// add a new button that can be used to submit the form via ajax
-		add(new AjaxButton("ajax-new-button", form) {
+	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		AjaxButton newBtn = new AjaxButton("ajax-new-button", form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -58,14 +61,9 @@ public abstract class AdminSavePanel<T>
 				target.add(feedback);
 				onNewError(target, form);
 			}
-		});
-	}
-	
-	@Override
-	protected void onInitialize() {
-		super.onInitialize();
+		};
 		// add a cancel button that can be used to submit the form via ajax
-		add(new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
+		ConfirmableAjaxBorder delBtn = new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -83,9 +81,10 @@ public abstract class AdminSavePanel<T>
 				hideNewRecord();
 				onDeleteSubmit(target, form);
 			}
-		});
+		};
+		add(newBtn.setVisible(isNewBtnVisible()), delBtn.setVisible(isDelBtnVisible()));
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -93,7 +92,7 @@ public abstract class AdminSavePanel<T>
 	public void hideNewRecord() {
 		newRecord.setVisible(false);
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -101,6 +100,9 @@ public abstract class AdminSavePanel<T>
 		newRecord.setVisible(true);
 	}
 
+	protected abstract boolean isNewBtnVisible();
+	protected abstract boolean isDelBtnVisible();
+
 	protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);
 	protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);
 

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java Thu Nov 10 17:39:32 2016
@@ -19,7 +19,9 @@
 package org.apache.openmeetings.web.admin.groups;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
 import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
 import static org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
 
@@ -68,7 +70,7 @@ public class GroupForm extends AdminBase
 		super(id, new CompoundPropertyModel<Group>(group));
 		this.groupList = groupList;
 		setOutputMarkupId(true);
-		
+
 		usersPanel = new GroupUsersPanel("users", getGroupId());
 		add(usersPanel);
 
@@ -114,8 +116,20 @@ public class GroupForm extends AdminBase
 	}
 
 	@Override
+	protected boolean isNewBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
+	protected boolean isDelBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
 	protected void onInitialize() {
 		super.onInitialize();
+		final boolean isGroupAdmin = hasGroupAdminLevel(getRights());
+		userToadd.setEnabled(!isGroupAdmin);
 		add(new RequiredTextField<String>("name").setLabel(Model.of(getString("165"))));
 		add(new UploadableImagePanel("logo") {
 			private static final long serialVersionUID = 1L;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java Thu Nov 10 17:39:32 2016
@@ -92,7 +92,7 @@ public class GroupsPanel extends AdminPa
 				final Group g = item.getModelObject();
 				item.add(new Label("id"));
 				item.add(new Label("name"));
-				if (isGroupAdmin && groupIds.contains(g.getId())) {
+				if (!isGroupAdmin || (isGroupAdmin && groupIds.contains(g.getId()))) {
 					item.add(new AjaxEventBehavior("click") {
 						private static final long serialVersionUID = 1L;
 	

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/forms.css Thu Nov 10 17:39:32 2016
@@ -48,7 +48,7 @@ div.formSaveButton input {
 .delButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 }
-div.formNewButton input {
+.formNewButton {
 	background: url(images/forms/plus_icon.png) no-repeat;
 	float: left;
 	cursor: pointer;
@@ -58,7 +58,7 @@ div.formNewButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formNewButton.disabled input {
+.formNewButton.disabled {
 	background: url(images/forms/plus_icon_disabled.png) no-repeat;
 }
 div.formRefreshButton input {
@@ -71,7 +71,7 @@ div.formRefreshButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formCancelButton>div {
+.formCancelButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 	display: inline-block;
 	float: left;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java Thu Nov 10 17:39:32 2016
@@ -79,11 +79,18 @@ public abstract class AdminBaseForm<T> e
 			protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
 				AdminBaseForm.this.onDeleteError(target, form);
 			}
-			
-		};
-		add(savePanel);
 
+			@Override
+			protected boolean isNewBtnVisible() {
+				return AdminBaseForm.this.isNewBtnVisible();
+			}
 
+			@Override
+			protected boolean isDelBtnVisible() {
+				return AdminBaseForm.this.isDelBtnVisible();
+			}
+		};
+		add(savePanel);
 	}
 
 	/**
@@ -92,7 +99,7 @@ public abstract class AdminBaseForm<T> e
 	public void hideNewRecord() {
 		savePanel.hideNewRecord();
 	}
-	
+
 	/**
 	 * @see AdminBaseForm#showNewRecord()
 	 */
@@ -100,6 +107,13 @@ public abstract class AdminBaseForm<T> e
 		savePanel.showNewRecord();
 	}
 
+	protected boolean isNewBtnVisible() {
+		return true;
+	}
+
+	protected boolean isDelBtnVisible() {
+		return true;
+	}
 	/**
 	 * invoked when user press save button
 	 * 

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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
@@ -20,12 +20,8 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 	<wicket:extend>
-		<div class="formNewButton">
-			<input type="submit" value="" wicket:id="ajax-new-button" wicket:message="title:155" />
-		</div>
-		<div class="formCancelButton">
-			<div wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
-		</div>
+		<div class="formNewButton" wicket:id="ajax-new-button" wicket:message="title:155"></div>
+		<div class="formCancelButton" wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
 		<span wicket:id="newRecord"></span>
 	</wicket:extend>
 </html>

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java Thu Nov 10 17:39:32 2016
@@ -29,7 +29,7 @@ import org.apache.wicket.model.Model;
 
 public abstract class AdminSavePanel<T> extends FormSaveRefreshPanel<T> {
 	private static final long serialVersionUID = 1L;
-	private Label newRecord;
+	private final Label newRecord;
 	private final Form<T> form;
 	
 	public AdminSavePanel(String id, final Form<T> form) {
@@ -38,9 +38,12 @@ public abstract class AdminSavePanel<T>
 		
 		newRecord = new Label("newRecord", Model.of(Application.getString(344L)));
 		add(newRecord.setVisible(false).setOutputMarkupId(true));
-		
-		// add a new button that can be used to submit the form via ajax
-		add(new AjaxButton("ajax-new-button", form) {
+	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		AjaxButton newBtn = new AjaxButton("ajax-new-button", form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -58,14 +61,9 @@ public abstract class AdminSavePanel<T>
 				target.add(feedback);
 				onNewError(target, form);
 			}
-		});
-	}
-	
-	@Override
-	protected void onInitialize() {
-		super.onInitialize();
+		};
 		// add a cancel button that can be used to submit the form via ajax
-		add(new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
+		ConfirmableAjaxBorder delBtn = new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -83,9 +81,10 @@ public abstract class AdminSavePanel<T>
 				hideNewRecord();
 				onDeleteSubmit(target, form);
 			}
-		});
+		};
+		add(newBtn.setVisible(isNewBtnVisible()), delBtn.setVisible(isDelBtnVisible()));
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -93,7 +92,7 @@ public abstract class AdminSavePanel<T>
 	public void hideNewRecord() {
 		newRecord.setVisible(false);
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -101,6 +100,9 @@ public abstract class AdminSavePanel<T>
 		newRecord.setVisible(true);
 	}
 
+	protected abstract boolean isNewBtnVisible();
+	protected abstract boolean isDelBtnVisible();
+
 	protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);
 	protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);
 

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java Thu Nov 10 17:39:32 2016
@@ -19,7 +19,9 @@
 package org.apache.openmeetings.web.admin.groups;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
 import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
 import static org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
 
@@ -68,7 +70,7 @@ public class GroupForm extends AdminBase
 		super(id, new CompoundPropertyModel<Group>(group));
 		this.groupList = groupList;
 		setOutputMarkupId(true);
-		
+
 		usersPanel = new GroupUsersPanel("users", getGroupId());
 		add(usersPanel);
 
@@ -114,8 +116,20 @@ public class GroupForm extends AdminBase
 	}
 
 	@Override
+	protected boolean isNewBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
+	protected boolean isDelBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
 	protected void onInitialize() {
 		super.onInitialize();
+		final boolean isGroupAdmin = hasGroupAdminLevel(getRights());
+		userToadd.setEnabled(!isGroupAdmin);
 		add(new RequiredTextField<String>("name").setLabel(Model.of(getString("165"))));
 		add(new UploadableImagePanel("logo") {
 			private static final long serialVersionUID = 1L;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java Thu Nov 10 17:39:32 2016
@@ -92,7 +92,7 @@ public class GroupsPanel extends AdminPa
 				final Group g = item.getModelObject();
 				item.add(new Label("id"));
 				item.add(new Label("name"));
-				if (isGroupAdmin && groupIds.contains(g.getId())) {
+				if (!isGroupAdmin || (isGroupAdmin && groupIds.contains(g.getId()))) {
 					item.add(new AjaxEventBehavior("click") {
 						private static final long serialVersionUID = 1L;
 	

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/forms.css
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/forms.css?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/forms.css (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/forms.css Thu Nov 10 17:39:32 2016
@@ -48,7 +48,7 @@ div.formSaveButton input {
 .delButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 }
-div.formNewButton input {
+.formNewButton {
 	background: url(images/forms/plus_icon.png) no-repeat;
 	float: left;
 	cursor: pointer;
@@ -58,7 +58,7 @@ div.formNewButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formNewButton.disabled input {
+.formNewButton.disabled {
 	background: url(images/forms/plus_icon_disabled.png) no-repeat;
 }
 div.formRefreshButton input {
@@ -71,7 +71,7 @@ div.formRefreshButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formCancelButton>div {
+.formCancelButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 	display: inline-block;
 	float: left;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminBaseForm.java Thu Nov 10 17:39:32 2016
@@ -79,11 +79,18 @@ public abstract class AdminBaseForm<T> e
 			protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
 				AdminBaseForm.this.onDeleteError(target, form);
 			}
-			
-		};
-		add(savePanel);
 
+			@Override
+			protected boolean isNewBtnVisible() {
+				return AdminBaseForm.this.isNewBtnVisible();
+			}
 
+			@Override
+			protected boolean isDelBtnVisible() {
+				return AdminBaseForm.this.isDelBtnVisible();
+			}
+		};
+		add(savePanel);
 	}
 
 	/**
@@ -92,7 +99,7 @@ public abstract class AdminBaseForm<T> e
 	public void hideNewRecord() {
 		savePanel.hideNewRecord();
 	}
-	
+
 	/**
 	 * @see AdminBaseForm#showNewRecord()
 	 */
@@ -100,6 +107,13 @@ public abstract class AdminBaseForm<T> e
 		savePanel.showNewRecord();
 	}
 
+	protected boolean isNewBtnVisible() {
+		return true;
+	}
+
+	protected boolean isDelBtnVisible() {
+		return true;
+	}
 	/**
 	 * invoked when user press save button
 	 * 

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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
@@ -20,12 +20,8 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 	<wicket:extend>
-		<div class="formNewButton">
-			<input type="submit" value="" wicket:id="ajax-new-button" wicket:message="title:155" />
-		</div>
-		<div class="formCancelButton">
-			<div wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
-		</div>
+		<div class="formNewButton" wicket:id="ajax-new-button" wicket:message="title:155"></div>
+		<div class="formCancelButton" wicket:id="ajax-cancel-button" wicket:message="title:157"></div>
 		<span wicket:id="newRecord"></span>
 	</wicket:extend>
 </html>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminSavePanel.java Thu Nov 10 17:39:32 2016
@@ -29,7 +29,7 @@ import org.apache.wicket.model.Model;
 
 public abstract class AdminSavePanel<T> extends FormSaveRefreshPanel<T> {
 	private static final long serialVersionUID = 1L;
-	private Label newRecord;
+	private final Label newRecord;
 	private final Form<T> form;
 	
 	public AdminSavePanel(String id, final Form<T> form) {
@@ -38,9 +38,12 @@ public abstract class AdminSavePanel<T>
 		
 		newRecord = new Label("newRecord", Model.of(Application.getString(344L)));
 		add(newRecord.setVisible(false).setOutputMarkupId(true));
-		
-		// add a new button that can be used to submit the form via ajax
-		add(new AjaxButton("ajax-new-button", form) {
+	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		AjaxButton newBtn = new AjaxButton("ajax-new-button", form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -58,14 +61,9 @@ public abstract class AdminSavePanel<T>
 				target.add(feedback);
 				onNewError(target, form);
 			}
-		});
-	}
-	
-	@Override
-	protected void onInitialize() {
-		super.onInitialize();
+		};
 		// add a cancel button that can be used to submit the form via ajax
-		add(new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
+		ConfirmableAjaxBorder delBtn = new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), form) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -83,9 +81,10 @@ public abstract class AdminSavePanel<T>
 				hideNewRecord();
 				onDeleteSubmit(target, form);
 			}
-		});
+		};
+		add(newBtn.setVisible(isNewBtnVisible()), delBtn.setVisible(isDelBtnVisible()));
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -93,7 +92,7 @@ public abstract class AdminSavePanel<T>
 	public void hideNewRecord() {
 		newRecord.setVisible(false);
 	}
-	
+
 	/**
 	 * Hide the new record text
 	 */
@@ -101,6 +100,9 @@ public abstract class AdminSavePanel<T>
 		newRecord.setVisible(true);
 	}
 
+	protected abstract boolean isNewBtnVisible();
+	protected abstract boolean isDelBtnVisible();
+
 	protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);
 	protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);
 

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java Thu Nov 10 17:39:32 2016
@@ -19,7 +19,9 @@
 package org.apache.openmeetings.web.admin.groups;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
 import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
 import static org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
 
@@ -68,7 +70,7 @@ public class GroupForm extends AdminBase
 		super(id, new CompoundPropertyModel<Group>(group));
 		this.groupList = groupList;
 		setOutputMarkupId(true);
-		
+
 		usersPanel = new GroupUsersPanel("users", getGroupId());
 		add(usersPanel);
 
@@ -114,8 +116,20 @@ public class GroupForm extends AdminBase
 	}
 
 	@Override
+	protected boolean isNewBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
+	protected boolean isDelBtnVisible() {
+		return !hasGroupAdminLevel(getRights());
+	}
+
+	@Override
 	protected void onInitialize() {
 		super.onInitialize();
+		final boolean isGroupAdmin = hasGroupAdminLevel(getRights());
+		userToadd.setEnabled(!isGroupAdmin);
 		add(new RequiredTextField<String>("name").setLabel(Model.of(getString("165"))));
 		add(new UploadableImagePanel("logo") {
 			private static final long serialVersionUID = 1L;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java Thu Nov 10 17:39:32 2016
@@ -92,7 +92,7 @@ public class GroupsPanel extends AdminPa
 				final Group g = item.getModelObject();
 				item.add(new Label("id"));
 				item.add(new Label("name"));
-				if (isGroupAdmin && groupIds.contains(g.getId())) {
+				if (!isGroupAdmin || (isGroupAdmin && groupIds.contains(g.getId()))) {
 					item.add(new AjaxEventBehavior("click") {
 						private static final long serialVersionUID = 1L;
 	

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html Thu Nov 10 17:39:32 2016
@@ -9,7 +9,7 @@
   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

Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/forms.css
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/forms.css?rev=1769164&r1=1769163&r2=1769164&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/forms.css (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/forms.css Thu Nov 10 17:39:32 2016
@@ -48,7 +48,7 @@ div.formSaveButton input {
 .delButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 }
-div.formNewButton input {
+.formNewButton {
 	background: url(images/forms/plus_icon.png) no-repeat;
 	float: left;
 	cursor: pointer;
@@ -58,7 +58,7 @@ div.formNewButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formNewButton.disabled input {
+.formNewButton.disabled {
 	background: url(images/forms/plus_icon_disabled.png) no-repeat;
 }
 div.formRefreshButton input {
@@ -71,7 +71,7 @@ div.formRefreshButton input {
 	margin-left: 2px;
 	margin-top: 2px;
 }
-div.formCancelButton>div {
+.formCancelButton {
 	background: url(images/forms/cancel_icon.png) no-repeat;
 	display: inline-block;
 	float: left;