Merge tag 'v2.3.24' into testing
[gpl/argeo-suite.git] / swt / org.argeo.app.ui / src / org / argeo / app / ui / people / GroupUiProvider.java
index 0731e0ef97f11b56509b1c690eaa133a8a2c76b5..6a805c68ac34bbd7b9fbb7b93e30ee9f51ca33f9 100644 (file)
@@ -1,5 +1,8 @@
 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;
@@ -7,6 +10,7 @@ import org.argeo.api.acr.ldap.LdapAttr;
 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;
@@ -15,7 +19,6 @@ 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;
@@ -32,7 +35,6 @@ import org.eclipse.swt.widgets.Composite;
 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;
@@ -47,17 +49,17 @@ public class GroupUiProvider implements SwtUiProvider {
                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;
                        }
@@ -87,7 +89,7 @@ public class GroupUiProvider implements SwtUiProvider {
 
                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);
@@ -96,7 +98,7 @@ public class GroupUiProvider implements SwtUiProvider {
 
                // 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);
                });