]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/ArgeoUserEditor.java
Add user
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / editors / ArgeoUserEditor.java
1 package org.argeo.security.ui.editors;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.ArgeoException;
6 import org.argeo.security.ArgeoSecurityService;
7 import org.argeo.security.ArgeoUser;
8 import org.argeo.security.SimpleArgeoUser;
9 import org.argeo.security.nature.SimpleUserNature;
10 import org.eclipse.core.runtime.IProgressMonitor;
11 import org.eclipse.ui.IEditorInput;
12 import org.eclipse.ui.IEditorSite;
13 import org.eclipse.ui.PartInitException;
14 import org.eclipse.ui.forms.editor.FormEditor;
15
16 /** Editor for an Argeo user. */
17 public class ArgeoUserEditor extends FormEditor {
18 private final static Log log = LogFactory.getLog(ArgeoUserEditor.class);
19
20 public final static String ID = "org.argeo.security.ui.argeoUserEditor";
21
22 private ArgeoUser user;
23 private ArgeoSecurityService securityService;
24
25 public void init(IEditorSite site, IEditorInput input)
26 throws PartInitException {
27 super.init(site, input);
28 String username = ((ArgeoUserEditorInput) getEditorInput())
29 .getUsername();
30 if (username == null) {// new
31 user = new SimpleArgeoUser();
32 user.getUserNatures().put(SimpleUserNature.TYPE,
33 new SimpleUserNature());
34 } else
35 user = securityService.getSecurityDao().getUser(username);
36 this.setPartProperty("name", username != null ? username : "<new user>");
37 setPartName(username != null ? username : "<new user>");
38 }
39
40 protected void addPages() {
41 try {
42 addPage(new DefaultUserMainPage(this, securityService, user));
43
44 } catch (PartInitException e) {
45 throw new ArgeoException("Not able to add page ", e);
46 }
47 }
48
49 @Override
50 public void doSave(IProgressMonitor monitor) {
51 // list pages
52 // TODO: make it more generic
53 findPage(DefaultUserMainPage.ID).doSave(monitor);
54
55 if (securityService.getSecurityDao().userExists(user.getUsername()))
56 securityService.updateUser(user);
57 else {
58 try {
59 // FIXME: make it cleaner
60 ((SimpleArgeoUser)user).setPassword(user.getUsername());
61 securityService.newUser(user);
62 setPartName(user.getUsername());
63 } catch (Exception e) {
64 // TODO Auto-generated catch block
65 e.printStackTrace();
66 }
67 }
68 firePropertyChange(PROP_DIRTY);
69 }
70
71 @Override
72 public void doSaveAs() {
73 }
74
75 @Override
76 public boolean isSaveAsAllowed() {
77 return false;
78 }
79
80 public void setSecurityService(ArgeoSecurityService securityService) {
81 this.securityService = securityService;
82 }
83 }