/**
* @param Kimai_Database_Mysql $database
* @param array $kgaUser
* @param bool $viewOtherGroupsAllowed
* @return array
*/
function getEditUserList(Kimai_Database_Mysql $database, $kgaUser, $viewOtherGroupsAllowed)
{
$users = array();
$showDeletedUsers = get_cookie('adminPanel_extension_show_deleted_users', 0);
if ($database->global_role_allows($kgaUser['globalRoleID'], 'core-user-otherGroup-view')) {
$dbUsers = $database->get_users($showDeletedUsers);
} else {
$dbUsers = $database->get_users($showDeletedUsers, $kgaUser['groups']);
}
$roles = $database->global_roles();
foreach ($dbUsers as $user) {
$user['globalRoleName'] = 'Unknown (' . $user['globalRoleID'] . ')';
foreach ($roles as $role) {
if ($role['globalRoleID'] == $user['globalRoleID']) {
$user['globalRoleName'] = $role['name'];
break;
}
}
$user['groups'] = array();
$groups = $database->getGroupMemberships($user['userID']);
if (is_array($groups)) {
foreach ($groups as $group) {
if (!$viewOtherGroupsAllowed && array_search($group, $kgaUser['groups']) === false) {
continue;
}
$groupData = $database->group_get_data($group);
$user['groups'][] = $groupData['name'];
}
}
$users[] = $user;
}
return $users;
}