package org.argeo.app.ui.people;
+import java.util.ArrayList;
+import java.util.List;
+
import org.argeo.api.acr.Content;
import org.argeo.api.acr.ContentSession;
import org.argeo.api.acr.ldap.LdapAcrUtils;
import org.argeo.api.acr.ldap.LdapObj;
import org.argeo.api.acr.spi.ProvidedContent;
import org.argeo.api.cms.directory.CmsGroup;
+import org.argeo.api.cms.directory.CmsRole;
import org.argeo.api.cms.directory.CmsUser;
import org.argeo.api.cms.directory.CmsUserManager;
import org.argeo.api.cms.directory.HierarchyUnit;
-import org.argeo.app.ui.SuiteUiUtils;
+import org.argeo.app.swt.ux.SuiteSwtUtils;
import org.argeo.app.ux.SuiteIcon;
import org.argeo.app.ux.SuiteMsg;
import org.argeo.cms.CurrentUser;
import org.argeo.cms.acr.ContentUtils;
-import org.argeo.cms.auth.CmsRole;
import org.argeo.cms.swt.CmsSwtTheme;
import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.swt.Selected;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
-import org.osgi.service.useradmin.Role;
public class GroupUiProvider implements SwtUiProvider {
private CmsUserManager cmsUserManager;
ContentSession contentSession = ((ProvidedContent) context).getSession();
TabularPart<Content, Content> membersPart = new AbstractTabularPart<Content, Content>() {
- Role[] roles;
+ List<CmsRole> roles;
@Override
public int getItemCount() {
- roles = context.adapt(CmsGroup.class).getMembers();
- return roles.length;
+ roles = new ArrayList<CmsRole>(context.adapt(CmsGroup.class).getDirectMembers());
+ return roles.size();
}
@Override
public Content getData(int row) {
- Role role = roles[row];
+ CmsRole role = roles.get(row);
Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, role);
return content;
}
String title = (context.hasContentClass(LdapObj.organization) ? SuiteMsg.org.lead() : SuiteMsg.group.lead())
+ " " + LdapAcrUtils.getLocalized(context, LdapAttr.cn.qName(), CurrentUser.locale()) + " ("
+ hierarchyUnit.getHierarchyUnitLabel(CurrentUser.locale()) + ")";
- SuiteUiUtils.addFormLabel(area, title);
+ SuiteSwtUtils.addFormLabel(area, title);
// toolbar
ToolBar toolBar = new ToolBar(area, SWT.NONE);
ToolItem addItem = new ToolItem(toolBar, SWT.FLAT);
addItem.setImage(theme.getSmallIcon(SuiteIcon.add));
- addItem.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, hierarchyUnit.getBase()));
+ addItem.setEnabled(CurrentUser.implies(org.argeo.cms.auth.CmsSystemRole.groupAdmin, hierarchyUnit.getBase()));
// members view
SwtTableView<Content, Content> membersView = new SwtTableView<>(area, SWT.BORDER, membersPart);
// CONTROLLER
membersPart.onSelected((model) -> {
- deleteItem.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, hierarchyUnit.getBase()));
+ deleteItem.setEnabled(CurrentUser.implies(org.argeo.cms.auth.CmsSystemRole.groupAdmin, hierarchyUnit.getBase()));
deleteItem.setData(model);
});