]> 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
Make security UI more robust
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / SecurityPerspective.java
index 1a630dd178793da685ab2e879f54548f22196bc4..9187c7830a4c1beeed9a68967cf1a1117b15eb13 100644 (file)
@@ -1,23 +1,38 @@
 package org.argeo.security.ui;
 
+import org.argeo.security.equinox.CurrentUser;
+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(false);
+               layout.setEditorAreaVisible(true);
                layout.setFixed(false);
 
-               IFolderLayout main = layout.createFolder("main", IPageLayout.RIGHT,
-                               0.3f, editorArea);
                IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
-                               0.3f, editorArea);
+                               0.4f, editorArea);
 
                left.addView("org.argeo.security.ui.usersView");
-               main.addView("org.argeo.security.ui.currentUserView");
+               left.addView("org.argeo.security.ui.rolesView");
+               // left.addView("org.argeo.security.ui.currentUserView");
+       }
+
+       public void setAdminRole(String adminRole) {
+               this.adminRole = adminRole;
        }
 
 }