scope="prototype">
<property name="securityService" ref="securityService" />
</bean>
+ <bean id="org.argeo.security.ui.refreshUsersList" class="org.argeo.security.ui.commands.RefreshUsersList"
+ scope="prototype" />
</beans>
id="org.argeo.security.ui.openChangePasswordDialog"
name="OpenChangePasswordDialog">
</command>
+ <command
+ defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
+ id="org.argeo.security.ui.refreshUsersList"
+ name="refreshUsersList">
+ </command>
</extension>
<extension
point="org.eclipse.ui.menus">
label="Add User"
tooltip="Add new user">
</command>
+ <command
+ commandId="org.argeo.security.ui.refreshUsersList"
+ icon="icons/refresh.png"
+ label="Refresh"
+ tooltip="Refresh user list">
+ </command>
</menuContribution>
<menuContribution
allPopups="false"
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(true);
layout.setFixed(false);
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;
}
}
--- /dev/null
+package org.argeo.security.ui.commands;
+
+import org.argeo.security.ui.views.UsersView;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/** Refresh the main EBI list. */
+public class RefreshUsersList extends AbstractHandler {
+
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ UsersView view = (UsersView) HandlerUtil
+ .getActiveWorkbenchWindow(event).getActivePage()
+ .findView(UsersView.ID);
+ view.refresh();
+ return null;
+ }
+
+}
\ No newline at end of file
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
IEditorPart editor = (IEditorPart) iwp;
editor.doSave(null);
} catch (Exception e) {
- throw new ExecutionException("Cannot save user", e);
+ MessageDialog.openError(Display.getDefault().getActiveShell(),
+ "Error", "Cannot save user: " + e.getMessage());
}
return null;
}
package org.argeo.security.ui.editors;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.argeo.ArgeoException;
import org.argeo.security.ArgeoSecurityService;
import org.argeo.security.ArgeoUser;
/** Editor for an Argeo user. */
public class ArgeoUserEditor extends FormEditor {
- private final static Log log = LogFactory.getLog(ArgeoUserEditor.class);
-
public final static String ID = "org.argeo.security.ui.argeoUserEditor";
private ArgeoUser user;
public class DefaultUserMainPage extends FormPage {
final static String ID = "argeoUserEditor.mainPage";
+ private final static Log log = LogFactory.getLog(DefaultUserMainPage.class);
private final static Image ROLE_CHECKED = SecurityUiPlugin
.getImageDescriptor("icons/security.gif").createImage();
- private final static Log log = LogFactory.getLog(ArgeoUserEditor.class);
private ArgeoUser user;
private SimpleUserNature simpleNature;
simpleNature.setEmail(email.getText());
simpleNature.setDescription(description.getText());
super.commit(onSave);
- if (log.isDebugEnabled())
- log.debug("General part committed");
+ if (log.isTraceEnabled())
+ log.trace("General part committed");
}
};
firstName.addModifyListener(new FormPartML(part));
public void commit(boolean onSave) {
// roles have already been modified in editing
super.commit(onSave);
- if (log.isDebugEnabled())
- log.debug("Role part committed");
+ if (log.isTraceEnabled())
+ log.trace("Role part committed");
}
};
getManagedForm().addPart(part);
/** List all users. */
public class UsersView extends ViewPart {
+ public final static String ID = "org.argeo.security.ui.usersView";
+
private TableViewer viewer;
private ArgeoSecurityService securityService;
this.simpleNatureType = simpleNatureType;
}
+ public void refresh() {
+ viewer.refresh();
+ }
+
private class UsersContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
import org.argeo.security.ArgeoUser;
import org.argeo.security.SimpleArgeoUser;
import org.argeo.security.UserNature;
-import org.argeo.security.nature.SimpleUserNature;
import org.springframework.security.Authentication;
import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl;
}
public void newUser(ArgeoUser user) {
- user.getUserNatures().clear();
+// user.getUserNatures().clear();
argeoSecurity.beforeCreate(user);
securityDao.create(user);
}