User management UI.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / SuiteUserUiProvider.java
index 0a351618f25d6843a2476e773cf97f2499af2f41..04d7a7b7ddcc0b62695c03f1e02f12ef363e206c 100644 (file)
@@ -1,5 +1,9 @@
 package org.argeo.suite.ui;
 
 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;
 
 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.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.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 {
 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
        private CmsUserManager cmsUserManager;
 
        @Override
@@ -27,30 +34,41 @@ public class SuiteUserUiProvider implements CmsUiProvider {
                String uid = context.getName();
                User user = cmsUserManager.getUserFromLocalId(uid);
 
                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
 
                // 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<String> 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) {
        }
 
        public void setCmsUserManager(CmsUserManager cmsUserManager) {
@@ -62,4 +80,7 @@ public class SuiteUserUiProvider implements CmsUiProvider {
                return value != null ? value.toString() : null;
        }
 
                return value != null ? value.toString() : null;
        }
 
+       public void init(Map<String, Object> properties) {
+               availableRoles = (String[]) properties.get("availableRoles");
+       }
 }
 }