- TableViewerColumn givenNameCol = new TableViewerColumn(usersViewer, SWT.NONE);
- givenNameCol.getColumn().setWidth(150);
- givenNameCol.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ public List<HierarchyUnit> getChildren(HierarchyUnit parent) {
+ List<HierarchyUnit> visible = new ArrayList<>();
+ if (parent != null) {
+ for (HierarchyUnit hu : parent.getDirectHierarchyUnits(true)) {
+ if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase()) //
+ ) // IPA
+ {
+ visible.add(hu);
+ }
+ }
+ } else {
+ for (UserDirectory directory : cmsUserManager.getUserDirectories()) {
+ if (CurrentUser.implies(CmsRole.userAdmin, directory.getBase()) //
+ || CurrentUser.implies(CmsRole.userAdmin,
+ IpaUtils.IPA_ACCOUNTS_RDN + "," + directory.getBase())) // IPA
+ {
+ // we do not show the base level
+ for (HierarchyUnit hu : directory.getDirectHierarchyUnits(true)) {
+ visible.add(hu);
+ }
+ }
+
+ }
+ }
+ return visible;
+ }