X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fbackupaccount.php;h=7f37f3b8519370c414959bd7867c6fbd26613257;hb=2c5cba28b6a8e13a58fe7584835340aa9779b146;hp=4f6fb936bd23c9b2a86e0944d9a73e849a158583;hpb=402cac2f93d6ccb89abf0e8a314e3f69d597b898;p=quix0rs-gnu-social.git diff --git a/actions/backupaccount.php b/actions/backupaccount.php index 4f6fb936bd..7f37f3b851 100644 --- a/actions/backupaccount.php +++ b/actions/backupaccount.php @@ -4,7 +4,7 @@ * Copyright (C) 2010, StatusNet, Inc. * * Download a backup of your own account to the browser - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -28,11 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET')) { - // This check helps protect against security problems; - // your code file can't be executed directly from the web. - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Download a backup of your own account to the browser @@ -48,120 +44,42 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - -class BackupaccountAction extends Action +class BackupaccountAction extends FormAction { - /** - * Returns the title of the page - * - * @return string page title - */ + protected $form = 'BackupAccount'; function title() { - return _("Backup account"); + // TRANS: Title for backup account page. + return _('Backup account'); } - /** - * For initializing members of the class. - * - * @param array $argarray misc. arguments - * - * @return boolean true - */ - - function prepare($argarray) + protected function doPreparation() { - parent::prepare($argarray); - - $cur = common_current_user(); - - if (empty($cur)) { - throw new ClientException(_('Only logged-in users can backup their account.'), 403); - } - - if (!$cur->hasRight(Right::BACKUPACCOUNT)) { + if (!$this->scoped->hasRight(Right::BACKUPACCOUNT)) { + // TRANS: Client exception thrown when trying to backup an account without having backup rights. throw new ClientException(_('You may not backup your account.'), 403); } return true; } - /** - * Handler method - * - * @param array $argarray is ignored since it's now passed in in prepare() - * - * @return void - */ - - function handle($argarray=null) + protected function doPost() { - parent::handle($argarray); - - if ($this->isPost()) { - $this->sendFeed(); - } else { - $this->showPage(); - } - return; - } - - /** - * Send a feed of the user's activities to the browser - * - * Uses the UserActivityStream class; may take a long time! - * - * @return void - */ + $stream = new UserActivityStream($this->scoped->getUser(), true, UserActivityStream::OUTPUT_RAW); - function sendFeed() - { - $cur = common_current_user(); - - $stream = new UserActivityStream($cur); - - header('Content-Disposition: attachment; filename='.$cur->nickname.'.atom'); + header('Content-Disposition: attachment; filename='.urlencode($this->scoped->getNickname()).'.atom'); header('Content-Type: application/atom+xml; charset=utf-8'); + // @fixme atom feed logic is in getString... + // but we just want it to output to the outputter. $this->raw($stream->getString()); } - /** - * Show a little form so that the person can request a backup. - * - * @return void - */ - - function showContent() - { - $form = new BackupAccountForm($this); - $form->show(); - } - - /** - * Return true if read only. - * - * MAY override - * - * @param array $args other arguments - * - * @return boolean is read only action? - */ - - function isReadOnly($args) - { - return false; + public function isReadOnly($args) { + return true; } - /** - * Return last modified, if applicable. - * - * MAY override - * - * @return string last modified http header - */ - function lastModified() { // For comparison with If-Last-Modified @@ -169,92 +87,8 @@ class BackupaccountAction extends Action return null; } - /** - * Return etag, if applicable. - * - * MAY override - * - * @return string etag http header - */ - function etag() { return null; } } - -/** - * A form for backing up the account. - * - * @category Account - * @package StatusNet - * @author Evan Prodromou - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ - -class BackupAccountForm extends Form -{ - /** - * Class of the form. - * - * @return string the form's class - */ - - function formClass() - { - return 'form_profile_backup'; - } - - /** - * URL the form posts to - * - * @return string the form's action URL - */ - - function action() - { - return common_local_url('backupaccount'); - } - - /** - * Output form data - * - * Really, just instructions for doing a backup. - * - * @return void - */ - - function formData() - { - $msg = - _('You can backup your account data in '. - 'Activity Streams '. - 'format. This is an experimental feature and provides an '. - 'incomplete backup; private account '. - 'information like email and IM addresses is not backed up. '. - 'Additionally, uploaded files and direct messages are not '. - 'backed up.'); - $this->out->elementStart('p'); - $this->out->raw($msg); - $this->out->elementEnd('p'); - } - - /** - * Buttons for the form - * - * In this case, a single submit button - * - * @return void - */ - - function formActions() - { - $this->out->submit('submit', - _m('BUTTON', 'Backup'), - 'submit', - null, - _('Backup your account')); - } -}