1 package org
.argeo
.app
.ui
.people
;
3 import java
.util
.Arrays
;
8 import javax
.jcr
.RepositoryException
;
10 import org
.argeo
.app
.ui
.SuiteMsg
;
11 import org
.argeo
.app
.ui
.SuiteUiUtils
;
12 import org
.argeo
.cms
.CmsUserManager
;
13 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
14 import org
.argeo
.cms
.ui
.CmsUiProvider
;
15 import org
.argeo
.cms
.ui
.viewers
.Section
;
16 import org
.argeo
.util
.naming
.LdapAttrs
;
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
;
26 /** Edit a suite user. */
27 public class PersonUiProvider
implements CmsUiProvider
{
28 private String
[] availableRoles
;
29 private CmsUserManager cmsUserManager
;
32 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
33 Section main
= new Section(parent
, SWT
.NONE
, context
);
34 main
.setLayoutData(CmsSwtUtils
.fillAll());
36 String uid
= context
.getName();
37 User user
= cmsUserManager
.getUserFromLocalId(uid
);
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()));
44 Text sn
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.lastName
.lead(), getUserProperty(user
, LdapAttrs
.sn
.name()));
45 // sn.setText(getUserProperty(user, LdapAttrs.sn.name()));
47 Text email
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.email
.lead(),
48 getUserProperty(user
, LdapAttrs
.mail
.name()));
49 // email.setText(getUserProperty(user, LdapAttrs.mail.name()));
51 Text uidT
= SuiteUiUtils
.addFormLine(main
, "uid", getUserProperty(user
, LdapAttrs
.uid
.name()));
54 // Label dnL = new Label(main, SWT.NONE);
55 // dnL.setText(user.getName());
58 // Section rolesSection = new Section(main, SWT.NONE, context);
59 Group rolesSection
= new Group(main
, SWT
.NONE
);
60 rolesSection
.setText("Roles");
61 rolesSection
.setLayoutData(CmsSwtUtils
.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
);
69 if (roles
.contains(role
))
70 radio
.setSelection(true);
76 public void setCmsUserManager(CmsUserManager cmsUserManager
) {
77 this.cmsUserManager
= cmsUserManager
;
80 private String
getUserProperty(Object element
, String key
) {
81 Object value
= ((User
) element
).getProperties().get(key
);
82 return value
!= null ? value
.toString() : null;
85 public void init(Map
<String
, Object
> properties
) {
86 availableRoles
= (String
[]) properties
.get("availableRoles");