From 9d1dd85af774c08ca520313c0311fbe37ed3dd32 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Mar 2024 10:11:14 +0100 Subject: [PATCH] Adapt to changes in Argeo Commons --- .../argeo/app/ui/people/GroupUiProvider.java | 18 ++++++++++-------- .../argeo/app/ui/people/HierarchyUnitPart.java | 6 +++--- .../argeo/app/ui/people/PeopleEntryArea.java | 4 ++-- .../argeo/app/ui/people/PersonUiProvider.java | 12 ++++++------ .../org/argeo/app/ui/people/UserColumn.java | 5 ++--- .../src/org/argeo/app/ui/people/UsersPart.java | 6 +++--- 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java index 0731e0e..6a805c6 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java @@ -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 membersPart = new AbstractTabularPart() { - Role[] roles; + List roles; @Override public int getItemCount() { - roles = context.adapt(CmsGroup.class).getMembers(); - return roles.length; + roles = new ArrayList(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 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); }); diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java index 8a2059f..784684d 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java @@ -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 { } } 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); } } diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java index 5a9a3d6..1700c28 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java @@ -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))); } diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java index 2cfb7b7..780512e 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java @@ -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) -> { diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java index 2214a15..35610f3 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java @@ -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 { @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)) { diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java index c615ebf..aaa8115 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java @@ -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 { private ContentSession contentSession; @@ -35,7 +35,7 @@ public class UsersPart extends DefaultTabularPart { List 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 { 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); -- 2.30.2