]> git.argeo.org Git - gpl/argeo-suite.git/blob - UsersPart.java
c615ebff81aa174d0e1d223e4943ea369e9c0bd7
[gpl/argeo-suite.git] / UsersPart.java
1 package org.argeo.app.ui.people;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
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;
15
16 public class UsersPart extends DefaultTabularPart<HierarchyUnit, Content> {
17 private ContentSession contentSession;
18 private CmsUserManager cmsUserManager;
19
20 public UsersPart(ContentSession contentSession, CmsUserManager cmsUserManager) {
21 this.contentSession = contentSession;
22 this.cmsUserManager = cmsUserManager;
23 addColumn(new UserColumn() {
24
25 @Override
26 public int getWidth() {
27 return 300;
28 }
29
30 });
31 }
32
33 @Override
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))
41 roles.add(content);
42 }
43
44 } else {
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))
51 roles.add(content);
52 }
53 }
54 }
55 }
56 return roles;
57 }
58
59 }