public function getUgroups()
 {
     if ($this->ugroups === null) {
         $result = ugroup_db_get_existing_ugroups($this->group->getId(), array($GLOBALS['UGROUP_ANONYMOUS'], $GLOBALS['UGROUP_REGISTERED'], $GLOBALS['UGROUP_PROJECT_MEMBERS'], $GLOBALS['UGROUP_PROJECT_ADMIN']));
         while ($row = db_fetch_array($result)) {
             $this->ugroups[$row['ugroup_id']] = util_translate_name_ugroup($row['name']);
         }
     }
     return $this->ugroups;
 }
Ejemplo n.º 2
0
    /**
     *  Display the value function form
     *
     *  @param field_id: the field id to edit
     *  @param value_function: the value function to bind to
     *  @param or_label: display an additionnal label to display "Or ..."
     *
     *  @return void
     */
    function displayValueFunctionForm($field_id, $value_function, $or_label = "")
    {
        $hp = Codendi_HTMLPurifier::instance();
        global $Language;
        if ($or_label) {
            echo '<h3>' . $hp->purify($or_label, CODENDI_PURIFIER_CONVERT_HTML) . ' ' . $Language->getText('tracker_include_type', 'bind_to_list') . ' ';
        } else {
            echo '<h3>' . $Language->getText('tracker_include_type', 'bind_to_list') . ' ';
        }
        echo help_button('TrackerAdministration.html#TrackerBindingFieldToValueList') . '</h3>';
        echo '
	      <FORM ACTION="" METHOD="POST">
	      <INPUT TYPE="HIDDEN" NAME="func" VALUE="update_binding">
	      <INPUT TYPE="HIDDEN" NAME="field_id" VALUE="' . (int) $field_id . '">
	      <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="' . (int) $this->Group->getID() . '">
	      <INPUT TYPE="HIDDEN" NAME="atid" VALUE="' . (int) $this->getID() . '">
	      ' . $Language->getText('tracker_include_type', 'bind_to') . ': &nbsp; 
	      <select multiple name="value_function[]">
	          <option value="">' . $Language->getText('global', 'none') . '</option>';
        $selected = "";
        if ($value_function && in_array("artifact_submitters", $value_function)) {
            $selected = " selected";
        }
        echo '<option value="artifact_submitters"' . $selected . '>' . $Language->getText('tracker_include_type', 'submitters') . '</option>';
        $selected = "";
        $ugroup_res = ugroup_db_get_ugroup($GLOBALS['UGROUP_PROJECT_MEMBERS']);
        $name = util_translate_name_ugroup(db_result($ugroup_res, 0, 'name'));
        if ($value_function && in_array("group_members", $value_function)) {
            $selected = " selected";
        }
        echo '<option value="group_members"' . $selected . '>' . $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
        $selected = "";
        $ugroup_res = ugroup_db_get_ugroup($GLOBALS['UGROUP_PROJECT_ADMIN']);
        $name = util_translate_name_ugroup(db_result($ugroup_res, 0, 'name'));
        if ($value_function && in_array("group_admins", $value_function)) {
            $selected = " selected";
        }
        echo '<option value="group_admins"' . $selected . '>' . $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
        $selected = "";
        $ugroup_res = ugroup_db_get_ugroup($GLOBALS['UGROUP_TRACKER_ADMIN']);
        $name = util_translate_name_ugroup(db_result($ugroup_res, 0, 'name'));
        if ($value_function && in_array("tracker_admins", $value_function)) {
            $selected = " selected";
        }
        echo '<option value="tracker_admins"' . $selected . '>' . $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
        $ugroup_res = ugroup_db_get_existing_ugroups(100);
        $rows = db_numrows($ugroup_res);
        for ($i = 0; $i < $rows; $i++) {
            $ug = db_result($ugroup_res, $i, 'ugroup_id');
            $selected = "";
            if ($ug == $GLOBALS['UGROUP_NONE'] || $ug == $GLOBALS['UGROUP_ANONYMOUS'] || $ug == $GLOBALS['UGROUP_PROJECT_MEMBERS'] || $ug == $GLOBALS['UGROUP_PROJECT_ADMIN'] || $ug == $GLOBALS['UGROUP_TRACKER_ADMIN']) {
                continue;
            }
            $ugr = "ugroup_" . $ug;
            if ($value_function && in_array($ugr, $value_function)) {
                $selected = " selected";
            }
            echo '<option value="' . $ugr . '"' . $selected . '>' . $hp->purify(util_translate_name_ugroup(db_result($ugroup_res, $i, 'name')), CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
        }
        if ($this->Group->getID() != 100) {
            $ugroup_res = ugroup_db_get_existing_ugroups($this->Group->getID());
            $rows = db_numrows($ugroup_res);
            for ($i = 0; $i < $rows; $i++) {
                $selected = "";
                $ug = db_result($ugroup_res, $i, 'ugroup_id');
                $ugr = "ugroup_" . $ug;
                if ($value_function && in_array($ugr, $value_function)) {
                    $selected = " selected";
                }
                echo '<option value="' . $ugr . '"' . $selected . '>' . $hp->purify(util_translate_name_ugroup(db_result($ugroup_res, $i, 'name')), CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
            }
        }
        echo '
		        </select>
	      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="' . $Language->getText('tracker_include_type', 'bind') . '">
	      </FORM>';
    }
Ejemplo n.º 3
0
$vExport = new Valid_WhiteList('export', array('user_groups', 'user_groups_format'));
$vExport->required();
if ($request->valid($vExport)) {
    $export = $request->get('export');
    $col_list = array('group', 'username', 'realname');
    $lbl_list = array('group' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_group'), 'username' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_username', array($GLOBALS['sys_name'])), 'realname' => $GLOBALS['Language']->getText('project_export_user_groups', 'user_realname'));
    $um = UserManager::instance();
    switch ($export) {
        case 'user_groups':
            $sep = get_csv_separator();
            $eol = "\n";
            $name = 'export_user_groups_' . $project->getUnixName() . '.csv';
            header('Content-Disposition: filename=' . $name);
            header('Content-Type: text/csv');
            echo build_csv_header($col_list, $lbl_list) . $eol;
            $ugs = ugroup_db_get_existing_ugroups($group_id, array($GLOBALS['UGROUP_PROJECT_MEMBERS'], $GLOBALS['UGROUP_PROJECT_ADMIN']));
            while ($ugrp = db_fetch_array($ugs)) {
                if ($ugrp['ugroup_id'] <= 100) {
                    $sqlUsers = ugroup_db_get_dynamic_members($ugrp['ugroup_id'], false, $group_id);
                } else {
                    $sqlUsers = ugroup_db_get_members($ugrp['ugroup_id']);
                }
                $users = db_query($sqlUsers);
                while ($user = db_fetch_array($users)) {
                    $r = array('group' => util_translate_name_ugroup($ugrp['name']), 'username' => $user['user_name'], 'realname' => $um->getUserById($user['user_id'])->getRealname());
                    echo build_csv_record($col_list, $r) . $eol;
                }
            }
            break;
        case 'user_groups_format':
            echo '<h3>' . $Language->getText('project_export_user_groups', 'exp_format') . '</h3>';
Ejemplo n.º 4
0
 /**
  * Get the list of source ugroups by project
  *
  * @param Integer $sourceProject Id of the current soucrce project
  * @param ProjectUGroup  $currentSource Currently bound ugroup
  *
  * @return Array
  */
 private function getUgroupList($sourceProject, ProjectUGroup $currentSource = null)
 {
     $ugroupList = array();
     $selected = false;
     $ugroups = ugroup_db_get_existing_ugroups($sourceProject);
     while ($ugroup = db_fetch_array($ugroups)) {
         $userGroup = new ProjectUGroup(array('ugroup_id' => $ugroup['ugroup_id']));
         if (!$userGroup->isBound()) {
             if ($currentSource && $currentSource->getId() == $ugroup['ugroup_id']) {
                 $selected = true;
             }
             $ugroupList[] = array('ugroup_id' => $ugroup['ugroup_id'], 'name' => $ugroup['name'], 'selected' => $selected);
         }
     }
     return $ugroupList;
 }
 /**
  * Validate ugroup list param used for tracker reminder.
  * @TODO write less, write better
  *
  * @param HTTPRequest $request HTTP request
  *
  * @return Array
  */
 public function validateReminderUgroups(HTTPRequest $request)
 {
     $groupId = $this->getTracker()->getGroupId();
     $ugs = ugroup_db_get_existing_ugroups($groupId, array($GLOBALS['UGROUP_PROJECT_MEMBERS'], $GLOBALS['UGROUP_PROJECT_ADMIN']));
     $ugroupIds = array();
     while ($row = db_fetch_array($ugs)) {
         $ugroupIds[] = intval($row['ugroup_id']);
     }
     $validUgroupIds = array();
     $selectedUgroups = $request->get('reminder_ugroup');
     if (!empty($selectedUgroups)) {
         foreach ($selectedUgroups as $ugroup) {
             if (in_array($ugroup, $ugroupIds)) {
                 $validUgroupIds[] = $ugroup;
             } else {
                 $errorMessage = $GLOBALS['Language']->getText('project_admin_utils', 'tracker_date_reminder_invalid_ugroup', array($ugroup));
                 throw new Tracker_DateReminderException($errorMessage);
             }
         }
         if (!empty($validUgroupIds)) {
             return $validUgroupIds;
         }
     } else {
         $errorMessage = $GLOBALS['Language']->getText('project_admin_utils', 'tracker_date_reminder_empty_ugroup_param');
         throw new Tracker_DateReminderException($errorMessage);
     }
 }
Ejemplo n.º 6
0
} else {
    echo $Language->getText('project_admin_index', 'member_request_delegation_desc_restricted_user');
}
echo '</p></td></tr>';
//Retrieve the saved ugroups for notification from DB
$dar = $pm->getMembershipRequestNotificationUGroup($group_id);
if ($dar && !$dar->isError() && $dar->rowCount() > 0) {
    $selectedUgroup = array();
    foreach ($dar as $row) {
        $selectedUgroup[] = $row['ugroup_id'];
    }
} else {
    $selectedUgroup = array($GLOBALS['UGROUP_PROJECT_ADMIN']);
}
$ugroupList = array(array('value' => $GLOBALS['UGROUP_PROJECT_ADMIN'], 'text' => util_translate_name_ugroup('project_admin')));
$res = ugroup_db_get_existing_ugroups($group_id);
while ($row = db_fetch_array($res)) {
    $ugroupList[] = array('value' => $row['ugroup_id'], 'text' => $row['name']);
}
echo '<tr><td colspan="2" style="text-align: center;">';
echo '<form method="post" action="permission_request.php">';
echo '<input type="hidden" name="func" value="member_req_notif_group" />';
echo '<input type="hidden" name="group_id" value="' . $group_id . '">';
echo html_build_multiple_select_box_from_array($ugroupList, "ugroups[]", $selectedUgroup, 8, false, '', false, '', false, '', false);
echo '<br />';
echo '<input type="submit" name="submit" value="' . $Language->getText('global', 'btn_update') . '" />';
echo '</form>';
echo '</td></tr>';
echo '<tr><td colspan="2"><p>';
echo $Language->getText('project_admin_index', 'member_request_delegation_msg_desc');
echo '</p></td></tr>';
 /**
  * Return the list of ugroup selectable to fill the notification table.
  *
  * It contains: all dynamic ugroups plus project members and admins.
  */
 function getUgroupsAllowedForTable($groupId)
 {
     $res = ugroup_db_get_existing_ugroups($groupId, array($GLOBALS['UGROUP_PROJECT_MEMBERS'], $GLOBALS['UGROUP_PROJECT_ADMIN']));
     $ugroups = array();
     while ($row = db_fetch_array($res)) {
         $r = array();
         $r['value'] = $row['ugroup_id'];
         $r['text'] = util_translate_name_ugroup($row['name']);
         $ugroups[] = $r;
     }
     return $ugroups;
 }
 protected static function fetchSelectUsers($select_name, $field, $value_function)
 {
     $hp = Codendi_HTMLPurifier::instance();
     $html = '';
     $html .= '<input type="hidden" name="' . $select_name . '" value="" />';
     $html .= '<select multiple="multiple" name="' . $select_name . '">
               <option value="">' . $GLOBALS['Language']->getText('global', 'none') . '</option>';
     $selected = "";
     if (in_array("artifact_submitters", $value_function)) {
         $selected = 'selected="selected"';
     }
     $html .= '<option value="artifact_submitters" ' . $selected . '>' . $GLOBALS['Language']->getText('plugin_tracker_include_type', 'submitters') . '</option>';
     $selected = "";
     $ugroup_res = ugroup_db_get_ugroup($GLOBALS['UGROUP_PROJECT_MEMBERS']);
     $name = util_translate_name_ugroup(db_result($ugroup_res, 0, 'name'));
     if (in_array("group_members", $value_function)) {
         $selected = 'selected="selected"';
     }
     $html .= '<option value="group_members" ' . $selected . '>' . $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
     $selected = "";
     $ugroup_res = ugroup_db_get_ugroup($GLOBALS['UGROUP_PROJECT_ADMIN']);
     $name = util_translate_name_ugroup(db_result($ugroup_res, 0, 'name'));
     if (in_array("group_admins", $value_function)) {
         $selected = 'selected="selected"';
     }
     $html .= '<option value="group_admins" ' . $selected . '>' . $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
     $ugroup_res = ugroup_db_get_existing_ugroups(100);
     $rows = db_numrows($ugroup_res);
     for ($i = 0; $i < $rows; $i++) {
         $ug = db_result($ugroup_res, $i, 'ugroup_id');
         $selected = "";
         if ($ug == $GLOBALS['UGROUP_NONE'] || $ug == $GLOBALS['UGROUP_ANONYMOUS'] || $ug == $GLOBALS['UGROUP_PROJECT_MEMBERS'] || $ug == $GLOBALS['UGROUP_PROJECT_ADMIN'] || $ug == $GLOBALS['UGROUP_TRACKER_ADMIN']) {
             continue;
         }
         $ugr = "ugroup_" . $ug;
         if (in_array($ugr, $value_function)) {
             $selected = 'selected="selected"';
         }
         $html .= '<option value="' . $ugr . '" ' . $selected . '>' . $hp->purify(util_translate_name_ugroup(db_result($ugroup_res, $i, 'name')), CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
     }
     $group_id = $field->getTracker()->getGroupId();
     if ($group_id != 100) {
         $ugroup_res = ugroup_db_get_existing_ugroups($group_id);
         $rows = db_numrows($ugroup_res);
         for ($i = 0; $i < $rows; $i++) {
             $selected = "";
             $ug = db_result($ugroup_res, $i, 'ugroup_id');
             $ugr = "ugroup_" . $ug;
             if (in_array($ugr, $value_function)) {
                 $selected = 'selected="selected"';
             }
             $html .= '<option value="' . $ugr . '" ' . $selected . '>' . $hp->purify(util_translate_name_ugroup(db_result($ugroup_res, $i, 'name')), CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
         }
     }
     $html .= '</select>';
     return $html;
 }