]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java
Prepare lib pom for release.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / SuiteUserUiProvider.java
1 package org.argeo.suite.ui;
2
3 import java.util.Arrays;
4 import java.util.List;
5 import java.util.Map;
6
7 import javax.jcr.Node;
8 import javax.jcr.RepositoryException;
9
10 import org.argeo.cms.CmsUserManager;
11 import org.argeo.cms.ui.CmsUiProvider;
12 import org.argeo.cms.ui.util.CmsUiUtils;
13 import org.argeo.cms.ui.viewers.Section;
14 import org.argeo.naming.LdapAttrs;
15 import org.eclipse.swt.SWT;
16 import org.eclipse.swt.layout.GridLayout;
17 import org.eclipse.swt.widgets.Button;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swt.widgets.Group;
21 import org.eclipse.swt.widgets.Text;
22 import org.osgi.service.useradmin.User;
23
24 /** Edit a suite user. */
25 public class SuiteUserUiProvider implements CmsUiProvider {
26 private String[] availableRoles;
27 private CmsUserManager cmsUserManager;
28
29 @Override
30 public Control createUi(Composite parent, Node context) throws RepositoryException {
31 Section main = new Section(parent, SWT.NONE, context);
32 main.setLayoutData(CmsUiUtils.fillAll());
33
34 String uid = context.getName();
35 User user = cmsUserManager.getUserFromLocalId(uid);
36
37 // Text givenName = new Text(main, SWT.SINGLE);
38 // givenName.setText(getUserProperty(user, LdapAttrs.givenName.name()));
39 Text givenName = SuiteUiUtils.addFormInput(main, SuiteMsg.firstName.lead(),
40 getUserProperty(user, LdapAttrs.givenName.name()));
41
42 Text sn = SuiteUiUtils.addFormInput(main, SuiteMsg.lastName.lead(), getUserProperty(user, LdapAttrs.sn.name()));
43 // sn.setText(getUserProperty(user, LdapAttrs.sn.name()));
44
45 Text email = SuiteUiUtils.addFormInput(main, SuiteMsg.email.lead(),
46 getUserProperty(user, LdapAttrs.mail.name()));
47 // email.setText(getUserProperty(user, LdapAttrs.mail.name()));
48
49 Text uidT = SuiteUiUtils.addFormLine(main, "uid", getUserProperty(user, LdapAttrs.uid.name()));
50 uidT.setText(uid);
51
52 // Label dnL = new Label(main, SWT.NONE);
53 // dnL.setText(user.getName());
54
55 // roles
56 // Section rolesSection = new Section(main, SWT.NONE, context);
57 Group rolesSection = new Group(main, SWT.NONE);
58 rolesSection.setText("Roles");
59 rolesSection.setLayoutData(CmsUiUtils.fillWidth());
60 rolesSection.setLayout(new GridLayout());
61 // new Label(rolesSection, SWT.NONE).setText("Roles:");
62 List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
63 for (String role : availableRoles) {
64 // new Label(rolesSection, SWT.NONE).setText(role);
65 Button radio = new Button(rolesSection, SWT.CHECK);
66 radio.setText(role);
67 if (roles.contains(role))
68 radio.setSelection(true);
69 }
70
71 return main;
72 }
73
74 public void setCmsUserManager(CmsUserManager cmsUserManager) {
75 this.cmsUserManager = cmsUserManager;
76 }
77
78 private String getUserProperty(Object element, String key) {
79 Object value = ((User) element).getProperties().get(key);
80 return value != null ? value.toString() : null;
81 }
82
83 public void init(Map<String, Object> properties) {
84 availableRoles = (String[]) properties.get("availableRoles");
85 }
86 }