From 2663dfc4d32c474f8fc7407d24bdcf0fa50ce08a Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 28 Jan 2011 18:35:21 +0000 Subject: [PATCH] Add user git-svn-id: https://svn.argeo.org/commons/trunk@4088 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/spring/commands.xml | 2 +- .../plugins/org.argeo.security.ui/plugin.xml | 13 +++++-- .../security/ui/SecurityPerspective.java | 2 +- .../security/ui/editors/ArgeoUserEditor.java | 36 +++++++++++++------ .../ui/editors/ArgeoUserEditorInput.java | 10 +++--- .../ui/editors/DefaultUserMainPage.java | 16 +++++++-- 6 files changed, 56 insertions(+), 23 deletions(-) diff --git a/security/eclipse/plugins/org.argeo.security.ui/META-INF/spring/commands.xml b/security/eclipse/plugins/org.argeo.security.ui/META-INF/spring/commands.xml index d4415d659..6c0421328 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/META-INF/spring/commands.xml +++ b/security/eclipse/plugins/org.argeo.security.ui/META-INF/spring/commands.xml @@ -6,7 +6,7 @@ - diff --git a/security/eclipse/plugins/org.argeo.security.ui/plugin.xml b/security/eclipse/plugins/org.argeo.security.ui/plugin.xml index 2960ef3f1..354c3215e 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/plugin.xml +++ b/security/eclipse/plugins/org.argeo.security.ui/plugin.xml @@ -87,8 +87,8 @@ + id="org.argeo.security.ui.newArgeoUserEditor" + name="OpenArgeoUserEditor"> + + + + diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/SecurityPerspective.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/SecurityPerspective.java index 63e327eee..bf404ce6f 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/SecurityPerspective.java +++ b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/SecurityPerspective.java @@ -16,7 +16,7 @@ public class SecurityPerspective implements IPerspectiveFactory { 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"); } } 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..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,6 +5,8 @@ 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; @@ -25,9 +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); - 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 +48,23 @@ 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 { + 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); } diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditorInput.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditorInput.java index 155f37e14..9d61e9fab 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditorInput.java +++ b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditorInput.java @@ -12,13 +12,12 @@ public class ArgeoUserEditorInput implements IEditorInput { 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() { @@ -26,16 +25,15 @@ public class ArgeoUserEditorInput implements IEditorInput { } public String getName() { - return username; + return username != null ? username : ""; } public IPersistableElement getPersistable() { - // TODO Auto-generated method stub return null; } public String getToolTipText() { - return username; + return username != null ? username : ""; } public boolean equals(Object obj) { diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java index 9ed5ccaec..2887edaa6 100644 --- a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java +++ b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java @@ -4,6 +4,7 @@ import org.apache.commons.logging.Log; 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; @@ -89,8 +90,14 @@ public class DefaultUserMainPage extends FormPage { 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", @@ -102,6 +109,11 @@ public class DefaultUserMainPage extends FormPage { // 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()); -- 2.30.2