1 package org
.argeo
.suite
.ui
;
3 import java
.util
.Arrays
;
8 import javax
.jcr
.RepositoryException
;
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
;
24 /** Edit a suite user. */
25 public class SuiteUserUiProvider
implements CmsUiProvider
{
26 private String
[] availableRoles
;
27 private CmsUserManager cmsUserManager
;
30 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
31 Section main
= new Section(parent
, SWT
.NONE
, context
);
32 main
.setLayoutData(CmsUiUtils
.fillAll());
34 String uid
= context
.getName();
35 User user
= cmsUserManager
.getUserFromLocalId(uid
);
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()));
42 Text sn
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.lastName
.lead(), getUserProperty(user
, LdapAttrs
.sn
.name()));
43 // sn.setText(getUserProperty(user, LdapAttrs.sn.name()));
45 Text email
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.email
.lead(),
46 getUserProperty(user
, LdapAttrs
.mail
.name()));
47 // email.setText(getUserProperty(user, LdapAttrs.mail.name()));
49 Text uidT
= SuiteUiUtils
.addFormLine(main
, "uid", getUserProperty(user
, LdapAttrs
.uid
.name()));
52 // Label dnL = new Label(main, SWT.NONE);
53 // dnL.setText(user.getName());
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
);
67 if (roles
.contains(role
))
68 radio
.setSelection(true);
74 public void setCmsUserManager(CmsUserManager cmsUserManager
) {
75 this.cmsUserManager
= cmsUserManager
;
78 private String
getUserProperty(Object element
, String key
) {
79 Object value
= ((User
) element
).getProperties().get(key
);
80 return value
!= null ? value
.toString() : null;
83 public void init(Map
<String
, Object
> properties
) {
84 availableRoles
= (String
[]) properties
.get("availableRoles");