X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FSuiteUserUiProvider.java;h=04d7a7b7ddcc0b62695c03f1e02f12ef363e206c;hp=0a351618f25d6843a2476e773cf97f2499af2f41;hb=4f10468a32db84b4a3d799f116e6ef73a7b4d158;hpb=dcab9f85ec830d3c8deeed5243eda43a4f82ef7d diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java index 0a35161..04d7a7b 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java @@ -1,5 +1,9 @@ package org.argeo.suite.ui; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -9,14 +13,17 @@ import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.cms.ui.viewers.Section; import org.argeo.naming.LdapAttrs; import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Text; import org.osgi.service.useradmin.User; /** Edit a suite user. */ public class SuiteUserUiProvider implements CmsUiProvider { + private String[] availableRoles; private CmsUserManager cmsUserManager; @Override @@ -27,30 +34,41 @@ public class SuiteUserUiProvider implements CmsUiProvider { String uid = context.getName(); User user = cmsUserManager.getUserFromLocalId(uid); - Text givenName = new Text(main, SWT.SINGLE); - givenName.setText(getUserProperty(user, LdapAttrs.givenName.name())); +// Text givenName = new Text(main, SWT.SINGLE); +// givenName.setText(getUserProperty(user, LdapAttrs.givenName.name())); + Text givenName = SuiteUiUtils.addFormInput(main, SuiteMsg.firstName.lead(), + getUserProperty(user, LdapAttrs.givenName.name())); - Text sn = new Text(main, SWT.SINGLE); - sn.setText(getUserProperty(user, LdapAttrs.sn.name())); + Text sn = SuiteUiUtils.addFormInput(main, SuiteMsg.lastName.lead(), getUserProperty(user, LdapAttrs.sn.name())); + // sn.setText(getUserProperty(user, LdapAttrs.sn.name())); - Text email = new Text(main, SWT.SINGLE); - email.setText(getUserProperty(user, LdapAttrs.mail.name())); + Text email = SuiteUiUtils.addFormInput(main, SuiteMsg.email.lead(), + getUserProperty(user, LdapAttrs.mail.name())); + // email.setText(getUserProperty(user, LdapAttrs.mail.name())); - Label lbl = new Label(main, SWT.NONE); - lbl.setText(uid); + Text uidT = SuiteUiUtils.addFormLine(main, "uid", getUserProperty(user, LdapAttrs.uid.name())); + uidT.setText(uid); - Label dnL = new Label(main, SWT.NONE); - dnL.setText(user.getName()); +// Label dnL = new Label(main, SWT.NONE); +// dnL.setText(user.getName()); // roles - Section rolesSection = new Section(main, SWT.NONE, context); - new Label(rolesSection, SWT.NONE).setText("Roles:"); - String[] roles = cmsUserManager.getUserRoles(user.getName()); - for (String role : roles) { - new Label(rolesSection, SWT.NONE).setText(role); + // Section rolesSection = new Section(main, SWT.NONE, context); + Group rolesSection = new Group(main, SWT.NONE); + rolesSection.setText("Roles"); + rolesSection.setLayoutData(CmsUiUtils.fillWidth()); + rolesSection.setLayout(new GridLayout()); + // new Label(rolesSection, SWT.NONE).setText("Roles:"); + List roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName())); + for (String role : availableRoles) { + // new Label(rolesSection, SWT.NONE).setText(role); + Button radio = new Button(rolesSection, SWT.CHECK); + radio.setText(role); + if (roles.contains(role)) + radio.setSelection(true); } - return lbl; + return main; } public void setCmsUserManager(CmsUserManager cmsUserManager) { @@ -62,4 +80,7 @@ public class SuiteUserUiProvider implements CmsUiProvider { return value != null ? value.toString() : null; } + public void init(Map properties) { + availableRoles = (String[]) properties.get("availableRoles"); + } }