コード例 #1
0
    session_require(array('group' => 1));
}
$vFunc = new Valid_WhiteList('func', array('member_req_notif_group', 'member_req_notif_message'));
$vFunc->required();
if ($request->isPost() && $request->valid($vFunc)) {
    /*
      updating the database
    */
    switch ($request->get('func')) {
        case 'member_req_notif_group':
            $vUGroups = new Valid_UInt('ugroups');
            $vUGroups->required();
            if ($request->validArray($vUGroups)) {
                $ugroups = $request->get('ugroups');
                // Remove ugroups that are empty or contain no project admins
                $result = ugroup_filter_ugroups_by_project_admin($group_id, $ugroups);
                $nonAdmins = $result['non_admins'];
                $validUgroups = $result['ugroups'];
                if (empty($validUgroups)) {
                    // If no valid ugroups the default one is project admins ugroup
                    $validUgroups = array($GLOBALS['UGROUP_PROJECT_ADMIN']);
                    $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_index', 'member_request_delegation_ugroups_all_invalid'));
                } else {
                    // If some selected ugroups are not valid display them to the user.
                    $diff = array_diff($ugroups, $validUgroups);
                    if (!empty($diff)) {
                        $deletedUgroups = array();
                        foreach ($diff as $ugroupId) {
                            $deletedUgroups[] = ugroup_get_name_from_id($ugroupId);
                        }
                        $GLOBALS['Response']->addFeedback('warning', $Language->getText('project_admin_index', 'member_request_delegation_ugroups_some_invalid', implode(', ', $deletedUgroups)));
コード例 #2
0
ファイル: UgroupUtilsTest.php プロジェクト: nterray/tuleap
 function testUgroupFilterUgroupsByProjectAdminBothAllAdmins()
 {
     $this->skipUnless(MOCKFUNCTION_AVAILABLE, "Function mocking not available");
     if (MOCKFUNCTION_AVAILABLE) {
         MockFunction::generate('ugroup_count_project_admins');
         MockFunction::setReturnValueAt(0, 'ugroup_count_project_admins', array('admins' => 1, 'non_admins' => 1));
         MockFunction::setReturnValueAt(1, 'ugroup_count_project_admins', array('admins' => 1, 'non_admins' => 2));
         MockFunction::setReturnValueAt(2, 'ugroup_count_project_admins', array('admins' => 1, 'non_admins' => 4));
         MockFunction::setReturnValueAt(3, 'ugroup_count_project_admins', array('admins' => 1, 'non_admins' => 8));
         MockFunction::expectCallCount('ugroup_count_project_admins', 4);
         $ugroups = array(1, 2);
         $this->assertEqual(array('non_admins' => 15, 'ugroups' => array(1, 2, 1, 2)), ugroup_filter_ugroups_by_project_admin(1, $ugroups));
         MockFunction::restore('ugroup_count_project_admins');
     }
 }