Adapt to changes in Argeo Commons
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 10 Mar 2024 09:11:14 +0000 (10:11 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 10 Mar 2024 09:11:14 +0000 (10:11 +0100)
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java
swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.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);
                });
 
index 8a2059f75e506832d13cf0367f532aefcf2a2de8..784684d729dd3a31d4191476df51374185f36070 100644 (file)
@@ -14,7 +14,7 @@ import org.argeo.api.cms.ux.CmsIcon;
 import org.argeo.app.ux.SuiteIcon;
 import org.argeo.cms.CurrentUser;
 import org.argeo.cms.acr.ContentUtils;
-import org.argeo.cms.auth.CmsRole;
+import org.argeo.cms.auth.CmsSystemRole;
 import org.argeo.cms.ux.widgets.AbstractHierarchicalPart;
 import org.argeo.cms.ux.widgets.Column;
 
@@ -57,11 +57,11 @@ public class HierarchyUnitPart extends AbstractHierarchicalPart<HierarchyUnit> {
                        }
                } else {
                        for (UserDirectory directory : cmsUserManager.getUserDirectories()) {
-                               if (CurrentUser.implies(CmsRole.userAdmin, directory.getBase())) {
+                               if (CurrentUser.implies(CmsSystemRole.userAdmin, directory.getBase())) {
                                        visible.add(directory);
                                }
                                for (HierarchyUnit hu : directory.getDirectHierarchyUnits(true)) {
-                                       if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase())) {
+                                       if (CurrentUser.implies(CmsSystemRole.userAdmin, hu.getBase())) {
                                                visible.add(hu);
                                        }
                                }
index 5a9a3d6688862091b22b294bab0aeba844df45db..1700c28454ace7c6570072ed6216827e7bdc43a2 100644 (file)
@@ -15,7 +15,7 @@ import org.argeo.app.ux.SuiteMsg;
 import org.argeo.app.ux.SuiteUxEvent;
 import org.argeo.cms.CurrentUser;
 import org.argeo.cms.acr.ContentUtils;
-import org.argeo.cms.auth.CmsRole;
+import org.argeo.cms.auth.CmsSystemRole;
 import org.argeo.cms.jcr.acr.JcrContent;
 import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
@@ -136,7 +136,7 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider {
                                addItem.setEnabled(true);
 
                                addOrgItem.setEnabled(usersPart.getInput() != null
-                                               && CurrentUser.implies(CmsRole.groupAdmin, usersPart.getInput().getBase()));
+                                               && CurrentUser.implies(CmsSystemRole.groupAdmin, usersPart.getInput().getBase()));
 //                             cmsView.sendEvent(SuiteUxEvent.refreshPart.topic(), SuiteUxEvent
 //                                             .eventProperties(ContentUtils.hierarchyUnitToContent(contentSession, hierarchyUnit)));
                        }
index 2cfb7b72d17bb502b55c9854bca3bf382d3b0571..780512e7aef7a86a541dc4bf6ee3cd0f2c27ac8f 100644 (file)
@@ -22,7 +22,7 @@ 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.CmsSystemRole;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.Selected;
 import org.argeo.cms.swt.acr.SwtSection;
@@ -77,7 +77,7 @@ public class PersonUiProvider implements SwtUiProvider {
                                                roleContext, roles);
                                addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.publisherRole, SuiteRole.publisher,
                                                roleContext, roles);
-                               addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.userAdminRole, CmsRole.userAdmin,
+                               addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.userAdminRole, CmsSystemRole.userAdmin,
                                                roleContext, roles);
                        }
 //                     Composite facetsSection = new Composite(main, SWT.NONE);
@@ -89,7 +89,7 @@ public class PersonUiProvider implements SwtUiProvider {
 //                                     new Label(facetsSection, SWT.NONE).setText(member);
 //                             }
 //                     }
-                       if (CurrentUser.implies(CmsRole.userAdmin, roleContext)) {
+                       if (CurrentUser.implies(CmsSystemRole.userAdmin, roleContext)) {
                                SwtSection changePasswordSection = new SwtSection(main, SWT.BORDER);
                                changePasswordSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
                                changePasswordSection.setLayout(new GridLayout(2, false));
@@ -177,15 +177,15 @@ public class PersonUiProvider implements SwtUiProvider {
                        }
                }
 
-               if (systemRole.equals(CmsRole.userAdmin)) {
-                       if (!CurrentUser.isUserContext(roleContext) && CurrentUser.implies(CmsRole.userAdmin, roleContext)) {
+               if (systemRole.equals(CmsSystemRole.userAdmin)) {
+                       if (!CurrentUser.isUserContext(roleContext) && CurrentUser.implies(CmsSystemRole.userAdmin, roleContext)) {
                                // a user admin cannot modify the user admins of their own context
                                radio.setEnabled(true);
                        } else {
                                radio.setEnabled(false);
                        }
                } else {
-                       radio.setEnabled(CurrentUser.implies(CmsRole.userAdmin, roleContext));
+                       radio.setEnabled(CurrentUser.implies(CmsSystemRole.userAdmin, roleContext));
                }
 
                radio.addSelectionListener((Selected) (e) -> {
index 2214a15689196c7b0a3b6723a01cbcd90ad5b706..35610f3510b1266e49e1285f1e8f48831323bd86 100644 (file)
@@ -4,18 +4,17 @@ import org.argeo.api.acr.Content;
 import org.argeo.api.acr.ldap.LdapAcrUtils;
 import org.argeo.api.acr.ldap.LdapAttr;
 import org.argeo.api.acr.ldap.LdapObj;
+import org.argeo.api.cms.directory.CmsUser;
 import org.argeo.api.cms.ux.CmsIcon;
 import org.argeo.app.ux.SuiteIcon;
 import org.argeo.cms.CurrentUser;
-import org.argeo.cms.auth.UserAdminUtils;
 import org.argeo.cms.ux.widgets.Column;
-import org.osgi.service.useradmin.User;
 
 public class UserColumn implements Column<Content> {
        @Override
        public String getText(Content role) {
                if (role.hasContentClass(LdapObj.inetOrgPerson))
-                       return UserAdminUtils.getUserDisplayName(role.adapt(User.class));
+                       return role.adapt(CmsUser.class).getDisplayName();
                else if (role.hasContentClass(LdapObj.organization))
                        return role.attr(LdapAttr.o);
                else if (role.hasContentClass(LdapObj.groupOfNames)) {
index c615ebff81aa174d0e1d223e4943ea369e9c0bd7..aaa8115b527f1a270f4a4337783760df2f73a2d4 100644 (file)
@@ -6,12 +6,12 @@ import java.util.List;
 import org.argeo.api.acr.Content;
 import org.argeo.api.acr.ContentSession;
 import org.argeo.api.acr.ldap.LdapObj;
+import org.argeo.api.cms.directory.CmsRole;
 import org.argeo.api.cms.directory.CmsUserManager;
 import org.argeo.api.cms.directory.HierarchyUnit;
 import org.argeo.api.cms.directory.UserDirectory;
 import org.argeo.cms.acr.ContentUtils;
 import org.argeo.cms.ux.widgets.DefaultTabularPart;
-import org.osgi.service.useradmin.Role;
 
 public class UsersPart extends DefaultTabularPart<HierarchyUnit, Content> {
        private ContentSession contentSession;
@@ -35,7 +35,7 @@ public class UsersPart extends DefaultTabularPart<HierarchyUnit, Content> {
                List<Content> roles = new ArrayList<>();
                UserDirectory ud = (UserDirectory) hu.getDirectory();
                if (ud.getRealm().isPresent()) {
-                       for (Role r : ud.getHierarchyUnitRoles(ud, null, true)) {
+                       for (CmsRole r : ud.getHierarchyUnitRoles(ud, null, true)) {
                                Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, r);
                                if (content.hasContentClass(LdapObj.inetOrgPerson, LdapObj.organization))
                                        roles.add(content);
@@ -45,7 +45,7 @@ public class UsersPart extends DefaultTabularPart<HierarchyUnit, Content> {
                        for (HierarchyUnit directChild : hu.getDirectHierarchyUnits(false)) {
                                if (!(directChild.isType(HierarchyUnit.Type.FUNCTIONAL)
                                                || directChild.isType(HierarchyUnit.Type.ROLES))) {
-                                       for (Role r : ud.getHierarchyUnitRoles(directChild, null, false)) {
+                                       for (CmsRole r : ud.getHierarchyUnitRoles(directChild, null, false)) {
                                                Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, r);
                                                if (content.hasContentClass(LdapObj.inetOrgPerson, LdapObj.organization, LdapObj.groupOfNames))
                                                        roles.add(content);