$assignRolesFor = $args->featureType; $target->tproject_id = $args->tproject_id; $target->tplan_id = $args->tplan_id; $featureMgr =& $tplanMgr; break; } if ($args->featureID && $args->doUpdate && $featureMgr) { if (checkRightsForUpdate($db, $args->user, $args->tproject_id, $args->featureType, $args->featureID)) { doUpdate($db, $args, $featureMgr); $gui->user_feedback = $gui->user_feedback == '' ? $gui->roles_updated : $gui->user_feedback; } } // -------------------------------------------------------------------------- // Important: // Must be done here after having done update, to get current information $gui->users = tlUser::getUserSet($db, array('where' => 'WHERE active=1')); checkSessionValid($db); $args->user = $_SESSION['currentUser']; // -------------------------------------------------------------------------- switch ($assignRolesFor) { case 'testproject': $info = getTestProjectEffectiveRoles($db, $tprojectMgr, $args, $gui->users); list($gui->userFeatureRoles, $gui->features, $gui->featureID) = $info; $target->tproject_id = $gui->featureID; break; case 'testplan': $info = getTestPlanEffectiveRoles($db, $tplanMgr, $tprojectMgr, $args, $gui->users); if (is_null($info)) { $gui->user_feedback = lang_get('no_test_plans_available'); } list($gui->userFeatureRoles, $gui->features, $gui->featureID) = $info;
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); }