/**
     *  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>';
    }
Example #2
0
 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;
 }
Example #3
0
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);
 }
Example #5
0
    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();">
Example #6
0
$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;
 }
Example #8
0
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;
}