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.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;
}
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);
});
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;
}
} 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);
}
}
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;
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)));
}
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;
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);
// 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));
}
}
- 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) -> {
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)) {
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;
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);
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);