/** * 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') . ': <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> <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="' . $Language->getText('tracker_include_type', 'bind') . '"> </FORM>'; }
private function getUGroupRow($ugroupId) { $res = ugroup_db_get_ugroup($ugroupId); if ($res && !db_error($res) && db_numrows($res) == 1) { $row = db_fetch_array($res); session_require(array('group' => $row['group_id'], 'admin_flags' => 'A')); if ($row['group_id'] == 100) { $row = null; } } else { exit_error($GLOBALS['Language']->getText('global', 'error'), $GLOBALS['Language']->getText('project_admin_editugroup', 'ug_not_found', array($ugroupId, db_error()))); } return $row; }
function ugroup_add_user_to_ugroup($group_id, $ugroup_id, $user_id) { if (!ugroup_user_is_member($user_id, $ugroup_id, $group_id)) { $sql = "INSERT INTO ugroup_user (ugroup_id, user_id) VALUES(" . db_ei($ugroup_id) . ", " . db_ei($user_id) . ")"; $res = db_query($sql); if (!$res) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('project_admin_ugroup_utils', 'cant_update_ug', db_error())); } if ($rows = db_affected_rows($res)) { // Now log in project history $res = ugroup_db_get_ugroup($ugroup_id); group_add_history('upd_ug', '', $group_id, array(db_result($res, 0, 'name'))); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('project_admin_ugroup_utils', 'ug_upd_success', array(db_result($res, 0, 'name'), 1))); // Raise event for ugroup modification EventManager::instance()->processEvent('project_admin_ugroup_add_user', array('group_id' => $group_id, 'ugroup_id' => $ugroup_id, 'user_id' => $user_id)); } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('project_admin_ugroup_utils', 'cant_insert_u_in_g', array($user_id, $ugroup_id, $GLOBALS['Language']->getText('project_admin_ugroup_utils', 'user_already_exist')))); } }
/** * Object oriented wrapper for ugroup_db_get_ugroup * * @param Integer $ugroupId Codendi user group id * * @return array */ function _getUgroupRow($ugroupId) { include_once 'www/project/admin/ugroup_utils.php'; $Language = $GLOBALS['Language']; $res = ugroup_db_get_ugroup($ugroupId); return db_fetch_array($res); }
while ($row = db_fetch_array($res)) { $group_arr[] = $row['name']; $group_arr_value[] = $row['ugroup_id']; } echo html_build_select_box_from_arrays($group_arr_value, $group_arr, "group_templates", 'cx_empty', false); echo '</td> </tr><tr><td><input type="submit" value="' . $Language->getText('project_admin_editugroup', 'create_ug') . '"></tr></td> </table> </form>'; } if ($func == 'edit' || $func == 'do_create') { // Sanity check if (!$ugroup_id) { exit_error($Language->getText('global', 'error'), 'The ugroup ID is missing'); } $res = ugroup_db_get_ugroup($ugroup_id); if (!$res) { exit_error($Language->getText('global', 'error'), $Language->getText('project_admin_editugroup', 'ug_not_found', array($ugroup_id, db_error()))); } if (!isset($ugroup_name) || !$ugroup_name) { $ugroup_name = db_result($res, 0, 'name'); } if (!isset($ugroup_description) || !$ugroup_description) { $ugroup_description = db_result($res, 0, 'description'); } else { $ugroup_description = stripslashes($ugroup_description); } project_admin_header(array('title' => $Language->getText('project_admin_editugroup', 'edit_ug'), 'group' => $group_id, 'help' => 'UserGroups.html#UGroupCreation')); print '<P><h2>' . $Language->getText('project_admin_editugroup', 'ug_admin', $ugroup_name) . '</h2>'; echo '<p>' . $Language->getText('project_admin_editugroup', 'upd_ug_name') . '</p>'; echo '<form method="post" name="form_create" action="/project/admin/ugroup.php?group_id=' . $group_id . '" onSubmit="return selIt();">
$btn_update = $Language->getText('plugin_ldap', 'ugroup_edit_btn_update'); $vSubmit = new Valid_WhiteList('submit', array($btn_update)); $vSubmit->required(); if ($request->isPost() && $request->valid($vSubmit)) { if ($request->get('submit') == $btn_update) { $vUserAdd = new Valid_String('user_add'); $vUserAdd->required(); if ($request->valid($vUserAdd)) { $ldapUserGroupManager->addListOfUsersToGroup($request->get('user_add')); } } } // // Display // $ugroupRow = ugroup_db_get_ugroup($ugroupId); $ugroupName = util_translate_name_ugroup($row['name']); $clean_ugroupName = $hp->purify($ugroupName); project_admin_header(array('title' => $Language->getText('project_admin_editugroup', 'edit_ug'), 'group' => $group_id)); echo '<h2>' . $Language->getText('project_admin_editugroup', 'ug_admin', $clean_ugroupName) . '</h2>'; echo '<p>' . $GLOBALS['Language']->getText('plugin_ldap', 'ugroup_edit_group_add_users_help') . '</p>'; echo '<form name="plugin_ldap_edit_ugroup" method="post" action="">'; echo '<input type="hidden" name="ugroup_id" value="' . $ugroupId . '" />'; echo '<input type="hidden" name="func" value="add_user" />'; echo '<p>' . $GLOBALS['Language']->getText('plugin_ldap', 'ugroup_edit_group_add_users') . ' <textarea name="user_add" id="user_add" rows="2" cols="60" wrap="soft"/></textarea></p>'; echo '<input type="submit" name="submit" value="' . $btn_update . '" />'; // JS code for autocompletion on "add_user" field defined on top. $js = "new UserAutoCompleter('user_add',\r\n '" . util_get_dir_image_theme() . "',\r\n true);"; $GLOBALS['Response']->includeFooterJavascriptSnippet($js); echo '</form>'; project_admin_footer(array());
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; }
function permission_fetch_selected_ugroups($permission_type, $object_id, $group_id) { $ugroups = array(); $res_ugroups = permission_db_authorized_ugroups($permission_type, $object_id); while ($row = db_fetch_array($res_ugroups)) { $data = db_fetch_array(ugroup_db_get_ugroup($row['ugroup_id'])); $ugroups[] = util_translate_name_ugroup($data['name']); } return $ugroups; }