]> git.argeo.org Git - gpl/argeo-suite.git/blob - argeo/suite/ui/SuiteUserUiProvider.java
Prepare next development cycle
[gpl/argeo-suite.git] / argeo / suite / ui / SuiteUserUiProvider.java
1 package org.argeo.suite.ui;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.cms.CmsUserManager;
7 import org.argeo.cms.ui.CmsUiProvider;
8 import org.argeo.cms.ui.util.CmsUiUtils;
9 import org.argeo.cms.ui.viewers.Section;
10 import org.argeo.naming.LdapAttrs;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Control;
14 import org.eclipse.swt.widgets.Label;
15 import org.eclipse.swt.widgets.Text;
16 import org.osgi.service.useradmin.User;
17
18 /** Edit a suite user. */
19 public class SuiteUserUiProvider implements CmsUiProvider {
20 private CmsUserManager cmsUserManager;
21
22 @Override
23 public Control createUi(Composite parent, Node context) throws RepositoryException {
24 Section main = new Section(parent, SWT.NONE, context);
25 main.setLayoutData(CmsUiUtils.fillAll());
26
27 String uid = context.getName();
28 User user = cmsUserManager.getUserFromLocalId(uid);
29
30 Text givenName = new Text(main, SWT.SINGLE);
31 givenName.setText(getUserProperty(user, LdapAttrs.givenName.name()));
32
33 Text sn = new Text(main, SWT.SINGLE);
34 sn.setText(getUserProperty(user, LdapAttrs.sn.name()));
35
36 Text email = new Text(main, SWT.SINGLE);
37 email.setText(getUserProperty(user, LdapAttrs.mail.name()));
38
39 Label lbl = new Label(main, SWT.NONE);
40 lbl.setText(uid);
41
42 Label dnL = new Label(main, SWT.NONE);
43 dnL.setText(user.getName());
44
45 // roles
46 Section rolesSection = new Section(main, SWT.NONE, context);
47 new Label(rolesSection, SWT.NONE).setText("Roles:");
48 String[] roles = cmsUserManager.getUserRoles(user.getName());
49 for (String role : roles) {
50 new Label(rolesSection, SWT.NONE).setText(role);
51 }
52
53 return lbl;
54 }
55
56 public void setCmsUserManager(CmsUserManager cmsUserManager) {
57 this.cmsUserManager = cmsUserManager;
58 }
59
60 private String getUserProperty(Object element, String key) {
61 Object value = ((User) element).getProperties().get(key);
62 return value != null ? value.toString() : null;
63 }
64
65 }