// Check validity. if (!$page->isValidName($page->name)) { pieError("PageNameInvalid"); } if (!$page->lock($GLOBALS['pie']['user'])) { pieError("PageLockError"); } // Prepare editing environment. if ($GLOBALS['pie']['edit_timeout']) { pieExpireDirectory($GLOBALS['pie']['run_path'] . "/temp", $GLOBALS['pie']['edit_timeout']); } $_REQUEST['cols'] = 80; $_REQUEST['rows'] = 20; $_REQUEST['author'] = $GLOBALS['pie']['user']; $pref = new UserPref(); if (($t = $pref->read($GLOBALS['pie']['user'], "cols")) !== false) { $_REQUEST['cols'] = $t; } if (($t = $pref->read($GLOBALS['pie']['user'], "rows")) !== false) { $_REQUEST['rows'] = $t; } // Determine the source of the source (so to speak). if ($_POST['source']) { // User provided input via HTTP request. $_REQUEST['source'] = pieCleanString($_REQUEST['source']); $_REQUEST['title'] = pieGetOption($_REQUEST['title']); $_REQUEST['comment'] = pieGetOption($_REQUEST['comment']); } elseif (file_exists($preview)) { // Read source and meta data from temporary preview file. if (!($dump = file_get_contents($preview))) { pieError("SourceReadError");
pieRequireUser(); pieHead("edit"); if (@$_REQUEST['user']) { // A user has been specified. $_REQUEST['user'] = pieGetOption($_REQUEST['user']); $user = new User(); if (!$user->isValidName($_REQUEST['user'])) { pieError("BadUser"); } if (!$user->exists($_REQUEST['user'])) { pieError("BadUser"); } } elseif ($_SESSION['user']) { // No user has been specified: // display information about myself. $_REQUEST['user'] = $_SESSION['user']; } if (!@$_REQUEST['user']) { pieError("NoUser"); } $map = new MapFile(); $data = array('user' => htmlspecialchars($_REQUEST['user']), 'realname' => "—", 'lastlogin' => date($GLOBALS['pie']['time_format'], $map->read($GLOBALS['pie']['run_path'] . "/user/login.map", $_REQUEST['user']))); $pref = new UserPref(); if (($val = $pref->read(@$_REQUEST['user'], 'realname')) !== false) { $data['realname'] = $val; } if (($val = $pref->read(@$_REQUEST['user'], 'registered')) !== false) { $data['registered'] = date($GLOBALS['pie']['time_format'], $val); } pieNotice("UserData", $data); pieTail();
$pref->write($user, 'realname', pieGetOption(@$_REQUEST['realname'])); } if ($_REQUEST['mail']) { $pref->write($user, 'mail', pieGetOption(@$_REQUEST['mail'])); } if ($_REQUEST['cols']) { $pref->write($user, 'cols', intval(@$_REQUEST['cols'])); } if ($_REQUEST['rows']) { $pref->write($user, 'rows', intval(@$_REQUEST['rows'])); } pieLog("user"); pieNotice("UpdateSuccessful"); } else { // Display the form. $data = array('user' => htmlspecialchars($user), 'admin' => "—", 'registered' => 0, 'cols' => 80, 'rows' => 20); $map = new MapFile(); $data['lastlogin'] = date($GLOBALS['pie']['time_format'], $map->read($GLOBALS['pie']['run_path'] . "/user/login.map", $user)); $data['updated'] = date($GLOBALS['pie']['time_format'], $pref->read($user, 'stamp')); $data['registered'] = date($GLOBALS['pie']['time_format'], $pref->read($user, 'registered')); if (pieIsSuperuser($user)) { $data['admin'] = "√"; } foreach (array('realname', 'mail', 'cols', 'rows') as $i) { if (($val = $pref->read($user, $i)) !== false) { $data[$i] = $val; } } pieNotice("PreferencesForm", $data); } pieTail();