userid; } function build_prefs_list() { $result = query_appdb("SELECT * FROM prefs_list ORDER BY id"); while($result && $r = mysql_fetch_object($result)) { //skip admin options //TODO: add a field to prefs_list to flag the user level for the pref if(!havepriv("admin")) { if($r->name == "query:mode") continue; if($r->name == "sidebar") continue; if($r->name == "window:query") continue; if($r->name == "query:hide_header") continue; if($r->name == "query:hide_sidebar") continue; if($r->name == "debug") continue; } $input = html_select("pref_$r->name", explode('|', $r->value_list), $_SESSION['current']->getpref($r->name, $r->def_value)); echo html_tr(array("  $r->description", $input)); } } function show_user_fields() { global $iUserId; $user = new User(); $ext_realname = $user->lookup_realname($iUserId); $ext_email = $user->lookup_email($iUserId); $CVSrelease = $user->lookup_CVSrelease($iUserId); // if we are managing anothe user if($iUserId == $_REQUEST['userId']) { if(isAdministrator($iUserId)) $ext_hasadmin = 'checked="true"'; else $ext_hasadmin = ""; } include(BASE."include/"."form_edit.php"); echo "  Wine version "; make_bugzilla_version_list("CVSrelease", $CVSrelease); echo ""; } if($_POST) { $user = new User(); while(list($key, $value) = each($_REQUEST)) { if(!ereg("^pref_(.+)$", $key, $arr)) continue; $_SESSION['current']->setpref($arr[1], $value); } if ($_REQUEST['ext_password'] == $_REQUEST['ext_password2']) { $str_passwd = $_REQUEST['ext_password']; } else if ($_REQUEST['ext_password']) { addmsg("The Passwords you entered did not match.", "red"); } if ($user->update($iUserId, $str_passwd, $_REQUEST['ext_realname'], $_REQUEST['ext_email'], $_REQUEST['CVSrelease'])) { addmsg("Preferences Updated", "green"); // we were managing an user, let's go back to the admin after updating tha admin status if($iUserId == $_REQUEST['userId'] && havepriv("admin")) { $user->userid = $iUserId; if($_POST['ext_hasadmin']=="on") $user->addpriv("admin"); else $user->delpriv("admin"); redirect(BASE."admin/adminUsers.php?userId=".$iUserId."&sSearch=".$_REQUEST['sSearch']."&iLimit=".$_REQUEST['iLimit']."&sOrderBy=".$_REQUEST['sOrderBy']."&sSubmit=true"); } } else { addmsg("There was a problem updating your userinfo", "red"); } } apidb_header("User Preferences"); echo "
\n"; // if we manage another user we give the parameters to go back to the admin if($iUserId == $_REQUEST['userId']) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo html_frame_start("Preferences for ".lookupRealName($iUserId), "80%"); echo html_table_begin("width='100%' border=0 align=left cellspacing=0 class='box-body'"); show_user_fields(); // if we don't manage another user if($iUserId != $_REQUEST['userId']) build_prefs_list(); echo html_table_end(); echo html_frame_end(); echo "

\n"; echo "
\n"; apidb_footer(); ?>