X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Feclipse%2Fplugins%2Forg.argeo.security.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Feditors%2FArgeoUserEditor.java;h=7c0213704a299a6785c7d3695597de491eddee60;hb=2663dfc4d32c474f8fc7407d24bdcf0fa50ce08a;hp=256016f85b8fcc201010f30c7a9b9de9e545f013;hpb=5fdef8bfcf058d698a9be5bcc1ae8cdcbe4ce0f0;p=lgpl%2Fargeo-commons.git diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditor.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditor.java index 256016f85..7c0213704 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditor.java +++ b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditor.java @@ -5,14 +5,13 @@ import org.apache.commons.logging.LogFactory; 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.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.editor.FormEditor; -import org.eclipse.ui.forms.widgets.FormToolkit; /** Editor for an Argeo user. */ public class ArgeoUserEditor extends FormEditor { @@ -28,8 +27,14 @@ public class ArgeoUserEditor extends FormEditor { super.init(site, input); String username = ((ArgeoUserEditorInput) getEditorInput()) .getUsername(); - user = securityService.getSecurityDao().getUser(username); - this.setPartProperty("name", 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 : ""); + setPartName(username != null ? username : ""); } protected void addPages() { @@ -43,8 +48,24 @@ public class ArgeoUserEditor extends FormEditor { @Override public void doSave(IProgressMonitor monitor) { - log.debug("doSave called"); - securityService.updateUser(user); + // list pages + // TODO: make it more generic + findPage(DefaultUserMainPage.ID).doSave(monitor); + + 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); } @Override @@ -59,14 +80,4 @@ public class ArgeoUserEditor extends FormEditor { public void setSecurityService(ArgeoSecurityService securityService) { this.securityService = securityService; } - - - private class DirtyListener implements ModifyListener { - - public void modifyText(ModifyEvent e) { - - } - - } - }