1 package org
.argeo
.app
.ui
.people
;
3 import java
.util
.Arrays
;
7 import org
.argeo
.api
.acr
.Content
;
8 import org
.argeo
.app
.ui
.SuiteMsg
;
9 import org
.argeo
.app
.ui
.SuiteUiUtils
;
10 import org
.argeo
.cms
.CmsUserManager
;
11 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
12 import org
.argeo
.cms
.swt
.widgets
.SwtSection
;
13 import org
.argeo
.cms
.ui
.CmsUiProvider
;
14 import org
.argeo
.util
.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
.Text
;
21 import org
.osgi
.service
.useradmin
.Group
;
22 import org
.osgi
.service
.useradmin
.User
;
24 /** Edit a suite user. */
25 public class PersonUiProvider
implements CmsUiProvider
{
26 private String
[] availableRoles
;
27 private CmsUserManager cmsUserManager
;
30 public Control
createUiPart(Composite parent
, Content context
) {
31 SwtSection main
= new SwtSection(parent
, SWT
.NONE
, context
);
32 main
.setLayoutData(CmsSwtUtils
.fillAll());
34 User user
= context
.adapt(User
.class);
36 if (user
instanceof Group
) {
37 String cn
= context
.getName().getLocalPart();
38 Text cnT
= SuiteUiUtils
.addFormLine(main
, "uid", getUserProperty(user
, LdapAttrs
.uid
.name()));
42 String uid
= context
.getName().getLocalPart();
44 // Text givenName = new Text(main, SWT.SINGLE);
45 // givenName.setText(getUserProperty(user, LdapAttrs.givenName.name()));
46 Text givenName
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.firstName
.lead(),
47 getUserProperty(user
, LdapAttrs
.givenName
.name()));
49 Text sn
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.lastName
.lead(),
50 getUserProperty(user
, LdapAttrs
.sn
.name()));
51 // sn.setText(getUserProperty(user, LdapAttrs.sn.name()));
53 Text email
= SuiteUiUtils
.addFormInput(main
, SuiteMsg
.email
.lead(),
54 getUserProperty(user
, LdapAttrs
.mail
.name()));
55 // email.setText(getUserProperty(user, LdapAttrs.mail.name()));
57 Text uidT
= SuiteUiUtils
.addFormLine(main
, "uid", getUserProperty(user
, LdapAttrs
.uid
.name()));
60 // Label dnL = new Label(main, SWT.NONE);
61 // dnL.setText(user.getName());
64 // Section rolesSection = new Section(main, SWT.NONE, context);
65 Composite rolesSection
= new Composite(main
, SWT
.NONE
);
66 // rolesSection.setText("Roles");
67 rolesSection
.setLayoutData(CmsSwtUtils
.fillWidth());
68 rolesSection
.setLayout(new GridLayout());
69 // new Label(rolesSection, SWT.NONE).setText("Roles:");
70 List
<String
> roles
= Arrays
.asList(cmsUserManager
.getUserRoles(user
.getName()));
71 for (String role
: availableRoles
) {
72 // new Label(rolesSection, SWT.NONE).setText(role);
73 Button radio
= new Button(rolesSection
, SWT
.CHECK
);
75 if (roles
.contains(role
))
76 radio
.setSelection(true);
83 public void setCmsUserManager(CmsUserManager cmsUserManager
) {
84 this.cmsUserManager
= cmsUserManager
;
87 private String
getUserProperty(Object element
, String key
) {
88 Object value
= ((User
) element
).getProperties().get(key
);
89 return value
!= null ? value
.toString() : null;
92 public void init(Map
<String
, Object
> properties
) {
93 availableRoles
= (String
[]) properties
.get("availableRoles");