<bean id="org.argeo.security.ui.openArgeoUserEditor" class="org.argeo.security.ui.commands.OpenArgeoUserEditor"
scope="prototype" />
- <bean id="org.argeo.security.ui.saveArgeoUser" class="org.argeo.security.ui.commands.SaveArgeoUser"
+ <bean id="org.argeo.security.ui.newArgeoUserEditor" class="org.argeo.security.ui.commands.OpenArgeoUserEditor"
scope="prototype" />
<bean id="org.argeo.security.ui.addRole" class="org.argeo.security.ui.commands.AddRole"
scope="prototype">
</command>
<command
defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
- id="org.argeo.security.ui.saveArgeoUser"
- name="SaveArgeoUser">
+ id="org.argeo.security.ui.newArgeoUserEditor"
+ name="OpenArgeoUserEditor">
</command>
<command
defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
tooltip="Add new role">
</command>
</menuContribution>
+ <menuContribution
+ locationURI="toolbar:org.argeo.security.ui.usersView">
+ <command
+ commandId="org.argeo.security.ui.newArgeoUserEditor"
+ icon="icons/add.gif"
+ label="Add User"
+ tooltip="Add new user">
+ </command>
+ </menuContribution>
<menuContribution
allPopups="false"
locationURI="menu:file?after=additions">
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");
}
}
import org.argeo.ArgeoException;
import org.argeo.security.ArgeoSecurityService;
import org.argeo.security.ArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
+import org.argeo.security.nature.SimpleUserNature;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
super.init(site, input);
String username = ((ArgeoUserEditorInput) getEditorInput())
.getUsername();
- user = securityService.getSecurityDao().getUser(username);
- this.setPartProperty("name", username);
- setPartName(username);
+ if (username == null) {// new
+ user = new SimpleArgeoUser();
+ user.getUserNatures().put(SimpleUserNature.TYPE,
+ new SimpleUserNature());
+ } else
+ user = securityService.getSecurityDao().getUser(username);
+ this.setPartProperty("name", username != null ? username : "<new user>");
+ setPartName(username != null ? username : "<new user>");
}
protected void addPages() {
@Override
public void doSave(IProgressMonitor monitor) {
- if (log.isDebugEnabled())
- log.debug("doSave called");
- // for (int i = 0; i < getPageCount(); i++) {
- // IEditorPart editor = getEditor(i);
- // if (editor != null)
- // editor.doSave(monitor);
- // }
+ // list pages
+ // TODO: make it more generic
findPage(DefaultUserMainPage.ID).doSave(monitor);
- securityService.updateUser(user);
+ if (securityService.getSecurityDao().userExists(user.getUsername()))
+ securityService.updateUser(user);
+ else {
+ try {
+ // FIXME: make it cleaner
+ ((SimpleArgeoUser)user).setPassword(user.getUsername());
+ securityService.newUser(user);
+ setPartName(user.getUsername());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
firePropertyChange(PROP_DIRTY);
}
this.username = username;
}
- public Object getAdapter(Class adapter) {
+ public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
return null;
}
public boolean exists() {
- // TODO: use security service?
- return true;
+ return username != null;
}
public ImageDescriptor getImageDescriptor() {
}
public String getName() {
- return username;
+ return username != null ? username : "<new user>";
}
public IPersistableElement getPersistable() {
- // TODO Auto-generated method stub
return null;
}
public String getToolTipText() {
- return username;
+ return username != null ? username : "<new user>";
}
public boolean equals(Object obj) {
import org.apache.commons.logging.LogFactory;
import org.argeo.security.ArgeoSecurityService;
import org.argeo.security.ArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
import org.argeo.security.nature.SimpleUserNature;
import org.argeo.security.ui.SecurityUiPlugin;
import org.eclipse.jface.viewers.CellEditor;
body.setLayout(layout);
// add widgets (view)
- tk.createLabel(body, "Username");
- tk.createLabel(body, user.getUsername());
+ final Text username;
+ if (user.getUsername() != null) {
+ tk.createLabel(body, "Username");
+ tk.createLabel(body, user.getUsername());
+ username = null;
+ } else {
+ username = createLT(body, "Username", "");
+ }
final Text firstName = createLT(body, "First name",
simpleNature.getFirstName());
final Text lastName = createLT(body, "Last name",
// create form part (controller)
AbstractFormPart part = new SectionPart(section) {
public void commit(boolean onSave) {
+ if (username != null) {
+ ((SimpleArgeoUser) user).setUsername(username.getText());
+ username.setEditable(false);
+ username.setEnabled(false);
+ }
simpleNature.setFirstName(firstName.getText());
simpleNature.setLastName(lastName.getText());
simpleNature.setEmail(email.getText());