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;
}
}