import java.util.Map;
import org.argeo.api.acr.Content;
+import org.argeo.api.acr.QNamed;
import org.argeo.api.acr.ldap.LdapAttrs;
import org.argeo.api.acr.ldap.LdapObjs;
+import org.argeo.api.cms.directory.CmsUserManager;
import org.argeo.app.api.SuiteRole;
import org.argeo.app.ui.SuiteMsg;
import org.argeo.app.ui.SuiteStyle;
import org.argeo.app.ui.SuiteUiUtils;
import org.argeo.cms.CmsMsg;
-import org.argeo.cms.CmsUserManager;
+import org.argeo.cms.CurrentUser;
import org.argeo.cms.Localized;
+import org.argeo.cms.RoleNameUtils;
+import org.argeo.cms.SystemRole;
import org.argeo.cms.auth.CmsRole;
-import org.argeo.cms.auth.CurrentUser;
-import org.argeo.cms.auth.RoleNameUtils;
-import org.argeo.cms.auth.SystemRole;
import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.swt.Selected;
import org.argeo.cms.swt.acr.SwtSection;
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.Text;
import org.osgi.service.useradmin.User;
SwtSection rolesSection = new SwtSection(main, SWT.NONE);
rolesSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
- rolesSection.setLayout(new GridLayout());
+ rolesSection.setLayout(new GridLayout(2, false));
List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
addRoleCheckBox(rolesSection, SuiteMsg.coworkerRole, SuiteRole.coworker, roleContext, roles);
addRoleCheckBox(rolesSection, SuiteMsg.publisherRole, SuiteRole.publisher, roleContext, roles);
return main;
}
- private void addFormLine(SwtSection parent, Localized msg, Content context, LdapAttrs attr) {
+ private void addFormLine(SwtSection parent, Localized msg, Content content, QNamed attr) {
SuiteUiUtils.addFormLabel(parent, msg.lead());
EditableText text = new EditableText(parent, SWT.SINGLE | SWT.FLAT);
text.setLayoutData(CmsSwtUtils.fillWidth());
text.setStyle(SuiteStyle.simpleInput);
- String txt = context.attr(attr.qName());
+ String txt = content.attr(attr);
if (txt == null) // FIXME understand why email is not found in IPA
txt = "";
text.setText(txt);
text.setMouseListener(new MouseAdapter() {
+ private static final long serialVersionUID = 1L;
+
@Override
public void mouseDoubleClick(MouseEvent e) {
String currentTxt = text.getText();
text.setText(currentTxt);
((Text) text.getControl()).addSelectionListener(new SelectionListener() {
+ private static final long serialVersionUID = 1L;
+
@Override
public void widgetSelected(SelectionEvent e) {
}
private void addRoleCheckBox(SwtSection parent, Localized msg, SystemRole systemRole, String roleContext,
List<String> roles) {
Button radio = new Button(parent, SWT.CHECK);
- radio.setText(msg.lead());
radio.setSelection(false);
roles: for (String dn : roles) {
if (systemRole.implied(dn, roleContext)) {
break roles;
}
}
- if (CurrentUser.implies(CmsRole.userAdmin, roleContext))
- radio.setEnabled(true);
+
+ if (systemRole.equals(CmsRole.userAdmin))
+ radio.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, roleContext));
else
- radio.setEnabled(false);
+ radio.setEnabled(CurrentUser.implies(CmsRole.userAdmin, roleContext));
+
+ new Label(parent, 0).setText(msg.lead());
}