]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/SecurityPerspective.java
Improve packaging (esp. security)
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / SecurityPerspective.java
index 63e327eee5bbfcf8d526e542c2b3b264b4fc1c95..3b3b9b840a6c58ed29c87aa8e3cd062ae7d176f7 100644 (file)
@@ -1,12 +1,23 @@
 package org.argeo.security.ui;
 
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IFolderLayout;
 import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPerspectiveFactory;
 
 public class SecurityPerspective implements IPerspectiveFactory {
+       private String adminRole = "ROLE_ADMIN";
 
        public void createInitialLayout(IPageLayout layout) {
+               if (!CurrentUser.roles().contains(adminRole)) {
+                       MessageDialog
+                                       .openError(Display.getCurrent().getActiveShell(),
+                                                       "Forbidden",
+                                                       "You are not allowed to access this resource.");
+                       return;
+               }
+
                String editorArea = layout.getEditorArea();
                layout.setEditorAreaVisible(true);
                layout.setFixed(false);
@@ -16,7 +27,11 @@ public class SecurityPerspective implements IPerspectiveFactory {
 
                left.addView("org.argeo.security.ui.usersView");
                left.addView("org.argeo.security.ui.rolesView");
-               left.addView("org.argeo.security.ui.currentUserView");
+               // left.addView("org.argeo.security.ui.currentUserView");
+       }
+
+       public void setAdminRole(String adminRole) {
+               this.adminRole = adminRole;
        }
 
 }