X-Git-Url: http://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=80abbe7f462f9331d2f54dc5c83dc1b7178f1e3f;hb=11703221f489a07fec8f1ccbfacbe401587e9ce5;hp=70afce67762652c34663f49e431cb4ee65a96f15;hpb=97f324b3c3287950acbac6bff52a67587ca9ce3b;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 70afce677..80abbe7f4 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 @@ -1,10 +1,10 @@ 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; +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; @@ -13,8 +13,6 @@ import org.eclipse.ui.forms.editor.FormEditor; /** 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; @@ -25,9 +23,14 @@ public class ArgeoUserEditor extends FormEditor { 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 : ""); + setPartName(username != null ? username : ""); } protected void addPages() { @@ -41,16 +44,16 @@ public class ArgeoUserEditor extends FormEditor { @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 { + securityService.newUser(user); + setPartName(user.getUsername()); + } firePropertyChange(PROP_DIRTY); }