static function getTestersForHtmlOptions(&$dbHandler, $tplan, $tproject, $users = null, $testers2add = null, $activeStatus = 'active') { $orOperand = false; $activeTarget = 1; $gaOpt['where'] = ' '; switch ($activeStatus) { case 'any': $orOperand = true; $gaOpt['where'] = ' '; break; case 'inactive': $gaOpt['where'] = ' WHERE active = 0 '; $activeTarget = 0; break; case 'active': default: $gaOpt['where'] = ' WHERE active = 1 '; $activeTarget = 1; break; } if (!$users) { $gaOpt = array(); $gaOpt['detailLevel'] = tlUser::TLOBJ_O_GET_DETAIL_MINIMUM; $users = tlUser::getUserSet($dbHandler, $gaOpt); } $users_roles = tlUser::getTestPlanEffectiveRoleForUserSet($tplan, $tproject, $users); $userFilter = array(); foreach ($users_roles as $keyUserID => $roleInfo) { // Assign test case to test project fails for PRIVATE TEST PROJECT (tested with admin user) if (is_object($roleInfo['effective_role'])) { // Because we can receive users from outside, we do noy know if the set is // in line with the $activeStatus argument. // That's why we do (what can be seems a superfluos) a check on isActive; if ($roleInfo['effective_role']->hasRight('testplan_execute') && ($orOperand || $roleInfo['user']->isActive == $activeTarget)) { $userFilter[$keyUserID] = $roleInfo['user']; } } } return tlUser::buildUserMap($userFilter, true, $testers2add); }