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=0a351618f25d6843a2476e773cf97f2499af2f41;hp=4ec1bfc7ff1943d272a6b8824ffa40af29936977;hb=4390bdf66e304558ecf692fdfb3983b7da4bc5ac;hpb=1b658b3ddd1563719c84968e90159ba604672af8 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 4ec1bfc..0a35161 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 @@ -3,16 +3,63 @@ package org.argeo.suite.ui; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.cms.CmsUserManager; import org.argeo.cms.ui.CmsUiProvider; +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.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.osgi.service.useradmin.User; +/** Edit a suite user. */ public class SuiteUserUiProvider implements CmsUiProvider { + private CmsUserManager cmsUserManager; @Override public Control createUi(Composite parent, Node context) throws RepositoryException { - // TODO Auto-generated method stub - return null; + Section main = new Section(parent, SWT.NONE, context); + main.setLayoutData(CmsUiUtils.fillAll()); + + String uid = context.getName(); + User user = cmsUserManager.getUserFromLocalId(uid); + + Text givenName = new Text(main, SWT.SINGLE); + givenName.setText(getUserProperty(user, LdapAttrs.givenName.name())); + + Text sn = new Text(main, SWT.SINGLE); + sn.setText(getUserProperty(user, LdapAttrs.sn.name())); + + Text email = new Text(main, SWT.SINGLE); + email.setText(getUserProperty(user, LdapAttrs.mail.name())); + + Label lbl = new Label(main, SWT.NONE); + lbl.setText(uid); + + 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); + } + + return lbl; + } + + public void setCmsUserManager(CmsUserManager cmsUserManager) { + this.cmsUserManager = cmsUserManager; + } + + private String getUserProperty(Object element, String key) { + Object value = ((User) element).getProperties().get(key); + return value != null ? value.toString() : null; } }