X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpeople%2FGroupUiProvider.java;h=6a805c68ac34bbd7b9fbb7b93e30ee9f51ca33f9;hb=9d1dd85af774c08ca520313c0311fbe37ed3dd32;hp=25a72584dce442aedabf6154c4661712a6d83842;hpb=c27f28501458ac3be0bc85a78116d136569f148c;p=gpl%2Fargeo-suite.git 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 25a7258..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,20 +1,24 @@ 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.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; -import org.argeo.app.ui.SuiteIcon; -import org.argeo.app.ui.SuiteMsg; -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; @@ -31,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; @@ -46,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; } @@ -71,14 +74,10 @@ public class GroupUiProvider implements SwtUiProvider { // title // TODO localise at content level - String title; - if (context.hasContentClass(LdapObj.organization)) - title = SuiteMsg.org.lead() + " " + context.attr(LdapAttr.cn) + " (" - + hierarchyUnit.getHierarchyUnitLabel(CurrentUser.locale()) + ")"; - else - title = SuiteMsg.group.lead() + " " + context.attr(LdapAttr.cn) + " (" - + hierarchyUnit.getHierarchyUnitLabel(CurrentUser.locale()) + ")"; - SuiteUiUtils.addFormLabel(area, title); + String title = (context.hasContentClass(LdapObj.organization) ? SuiteMsg.org.lead() : SuiteMsg.group.lead()) + + " " + LdapAcrUtils.getLocalized(context, LdapAttr.cn.qName(), CurrentUser.locale()) + " (" + + hierarchyUnit.getHierarchyUnitLabel(CurrentUser.locale()) + ")"; + SuiteSwtUtils.addFormLabel(area, title); // toolbar ToolBar toolBar = new ToolBar(area, SWT.NONE); @@ -90,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); @@ -99,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); });