protected function populateChildNodes($node, &$currentList, $roleMode)
{
$currentUser = \Pimcore\Tool\Admin::getCurrentUser();
$list = $roleMode ? new User\Role\Listing() : new User\Listing();
$list->setCondition("parentId = ?", $node->getId());
$list->setOrder("ASC");
$list->setOrderKey("name");
$list->load();
$childList = $roleMode ? $list->getRoles() : $list->getUsers();
if (is_array($childList)) {
foreach ($childList as $user) {
if ($user->getId() == $currentUser->getId()) {
throw new \Exception("Cannot delete current user");
}
if ($user->getId() && $currentUser->getId() && $user->getName() != "system") {
$currentList[] = $user;
$this->populateChildNodes($user, $currentList, $roleMode);
}
}
}
return $currentList;
}