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