. * * @category Action * @package StatusNet * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } /** * Superclass for actions that operate on a user * * @category Action * @package StatusNet * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ class ProfileFormAction extends Action { var $profile = null; /** * Take arguments for running * * @param array $args $_REQUEST args * * @return boolean success flag */ function prepare($args) { parent::prepare($args); $this->checkSessionToken(); if (!common_logged_in()) { $this->clientError(_('Not logged in.')); return false; } $id = $this->trimmed('profileid'); if (!$id) { $this->clientError(_('No profile specified.')); return false; } $this->profile = Profile::staticGet('id', $id); if (!$this->profile) { $this->clientError(_('No profile with that ID.')); return false; } return true; } /** * Handle request * * Shows a page with list of favorite notices * * @param array $args $_REQUEST args; handled in prepare() * * @return void */ function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handlePost(); $this->returnToArgs(); } } /** * Return to the calling page based on hidden arguments * * @return void */ function returnToArgs() { foreach ($this->args as $k => $v) { if ($k == 'returnto-action') { $action = $v; } else if (substr($k, 0, 9) == 'returnto-') { $args[substr($k, 9)] = $v; } } if ($action) { common_redirect(common_local_url($action, $args), 303); } else { $this->clientError(_("No return-to arguments")); } } /** * handle a POST request * * sub-classes should overload this request * * @return void */ function handlePost() { $this->serverError(_("unimplemented method")); } }