コード例 #1
0
 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);
 }