1 package org
.argeo
.app
.ui
.people
;
3 import java
.util
.ArrayList
;
6 import org
.argeo
.api
.acr
.Content
;
7 import org
.argeo
.api
.acr
.ContentSession
;
8 import org
.argeo
.api
.acr
.ldap
.LdapObj
;
9 import org
.argeo
.api
.cms
.directory
.CmsUserManager
;
10 import org
.argeo
.api
.cms
.directory
.HierarchyUnit
;
11 import org
.argeo
.api
.cms
.directory
.UserDirectory
;
12 import org
.argeo
.cms
.acr
.ContentUtils
;
13 import org
.argeo
.cms
.ux
.widgets
.DefaultTabularPart
;
14 import org
.osgi
.service
.useradmin
.Role
;
16 public class UsersPart
extends DefaultTabularPart
<HierarchyUnit
, Content
> {
17 private ContentSession contentSession
;
18 private CmsUserManager cmsUserManager
;
20 public UsersPart(ContentSession contentSession
, CmsUserManager cmsUserManager
) {
21 this.contentSession
= contentSession
;
22 this.cmsUserManager
= cmsUserManager
;
23 addColumn(new UserColumn() {
26 public int getWidth() {
34 protected List
<Content
> asList(HierarchyUnit hu
) {
35 List
<Content
> roles
= new ArrayList
<>();
36 UserDirectory ud
= (UserDirectory
) hu
.getDirectory();
37 if (ud
.getRealm().isPresent()) {
38 for (Role r
: ud
.getHierarchyUnitRoles(ud
, null, true)) {
39 Content content
= ContentUtils
.roleToContent(cmsUserManager
, contentSession
, r
);
40 if (content
.hasContentClass(LdapObj
.inetOrgPerson
, LdapObj
.organization
))
45 for (HierarchyUnit directChild
: hu
.getDirectHierarchyUnits(false)) {
46 if (!(directChild
.isType(HierarchyUnit
.Type
.FUNCTIONAL
)
47 || directChild
.isType(HierarchyUnit
.Type
.ROLES
))) {
48 for (Role r
: ud
.getHierarchyUnitRoles(directChild
, null, false)) {
49 Content content
= ContentUtils
.roleToContent(cmsUserManager
, contentSession
, r
);
50 if (content
.hasContentClass(LdapObj
.inetOrgPerson
, LdapObj
.organization
, LdapObj
.groupOfNames
))