From: Mikael Nordfeldth Date: Mon, 14 Oct 2013 22:19:03 +0000 (+0200) Subject: Naming stuff GNUsocial rather than StatusNet X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=9be368006c94ed17d4ff7bb573dbf1bf93b2272e;p=quix0rs-gnu-social.git Naming stuff GNUsocial rather than StatusNet --- diff --git a/actions/apignusocialconfig.php b/actions/apignusocialconfig.php new file mode 100644 index 0000000000..a6105006b4 --- /dev/null +++ b/actions/apignusocialconfig.php @@ -0,0 +1,153 @@ +. + * + * @category API + * @package GNUsocial + * @author Evan Prodromou + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://www.gnu.org/software/social/ + */ + +if (!defined('GNUSOCIAL')) { exit(1); } + +/** + * Gives a full dump of configuration variables for this instance + * of GNU social, minus variables that may be security-sensitive (like + * passwords). + * URL: https://example.com/api/gnusocial/config.(xml|json) + * Formats: xml, json + * + * @category API + * @package GNUsocial + * @author Evan Prodromou + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://www.gnu.org/software/social/ + */ +class ApiGNUsocialConfigAction extends ApiAction +{ + var $keys = array( + 'site' => array('name', 'server', 'theme', 'path', 'logo', 'fancy', 'language', + 'email', 'broughtby', 'broughtbyurl', 'timezone', 'closed', + 'inviteonly', 'private', 'textlimit', 'ssl', 'sslserver'), + 'license' => array('type', 'owner', 'url', 'title', 'image'), + 'nickname' => array('featured'), + 'profile' => array('biolimit'), + 'group' => array('desclimit'), + 'notice' => array('contentlimit'), + 'throttle' => array('enabled', 'count', 'timespan'), + 'xmpp' => array('enabled', 'server', 'port', 'user'), + 'integration' => array('source'), + 'attachments' => array('uploads', 'file_quota'), + 'url' => array('maxurllength', 'maxnoticelength'), + ); + + protected function handle() + { + parent::handle(); + + switch ($this->format) { + case 'xml': + $this->initDocument('xml'); + $this->elementStart('config'); + + // XXX: check that all sections and settings are legal XML elements + + foreach ($this->keys as $section => $settings) { + $this->elementStart($section); + foreach ($settings as $setting) { + $value = $this->setting($section, $setting); + if (is_array($value)) { + $value = implode(',', $value); + } else if ($value === false || $value == '0') { + $value = 'false'; + } else if ($value === true || $value == '1') { + $value = 'true'; + } + + // return theme logo if there's no site specific one + if (empty($value)) { + if ($section == 'site' && $setting == 'logo') { + $value = Theme::path('logo.png'); + } + } + + $this->element($setting, null, $value); + } + $this->elementEnd($section); + } + $this->elementEnd('config'); + $this->endDocument('xml'); + break; + case 'json': + $result = array(); + foreach ($this->keys as $section => $settings) { + $result[$section] = array(); + foreach ($settings as $setting) { + $result[$section][$setting] + = $this->setting($section, $setting); + } + } + $this->initDocument('json'); + $this->showJsonObjects($result); + $this->endDocument('json'); + break; + default: + $this->clientError( + // TRANS: Client error displayed when coming across a non-supported API method. + _('API method not found.'), + 404, + $this->format + ); + break; + } + } + + function setting($section, $key) { + $result = common_config($section, $key); + if ($key == 'file_quota') { + // hack: adjust for the live upload limit + if (common_config($section, 'uploads')) { + $max = ImageFile::maxFileSizeInt(); + } else { + $max = 0; + } + return min($result, $max); + } + return $result; + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } +} diff --git a/actions/apignusocialversion.php b/actions/apignusocialversion.php new file mode 100644 index 0000000000..e50e2d59da --- /dev/null +++ b/actions/apignusocialversion.php @@ -0,0 +1,87 @@ +. + * + * @category API + * @package GNUsocial + * @author Evan Prodromou + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://www.gnu.org/software/social/ + */ + +if (!defined('GNUSOCIAL')) { exit(1); } + +/** + * Returns a version number for this version of GNU social, which + * should make things a bit easier for upgrades. + * URL: http://identi.ca/api/statusnet/version.(xml|json) + * Formats: xml, js + * + * @category API + * @package GNUsocial + * @author Evan Prodromou + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://www.gnu.org/software/social/ + */ +class ApiGNUsocialVersionAction extends ApiPrivateAuthAction +{ + protected function handle() + { + parent::handle(); + + switch ($this->format) { + case 'xml': + $this->initDocument('xml'); + $this->element('version', null, STATUSNET_VERSION); + $this->endDocument('xml'); + break; + case 'json': + $this->initDocument('json'); + print '"'.STATUSNET_VERSION.'"'; + $this->endDocument('json'); + break; + default: + $this->clientError( + // TRANS: Client error displayed when coming across a non-supported API method. + _('API method not found.'), + 404, + $this->format + ); + break; + } + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } +} diff --git a/actions/apistatusnetconfig.php b/actions/apistatusnetconfig.php deleted file mode 100644 index 33ac32a7da..0000000000 --- a/actions/apistatusnetconfig.php +++ /dev/null @@ -1,175 +0,0 @@ -. - * - * @category API - * @package StatusNet - * @author Evan Prodromou - * @author Zach Copley - * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - exit(1); -} - -/** - * Gives a full dump of configuration variables for this instance - * of StatusNet, minus variables that may be security-sensitive (like - * passwords). - * URL: http://identi.ca/api/statusnet/config.(xml|json) - * Formats: xml, json - * - * @category API - * @package StatusNet - * @author Evan Prodromou - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ -class ApiStatusnetConfigAction extends ApiAction -{ - var $keys = array( - 'site' => array('name', 'server', 'theme', 'path', 'logo', 'fancy', 'language', - 'email', 'broughtby', 'broughtbyurl', 'timezone', 'closed', - 'inviteonly', 'private', 'textlimit', 'ssl', 'sslserver'), - 'license' => array('type', 'owner', 'url', 'title', 'image'), - 'nickname' => array('featured'), - 'profile' => array('biolimit'), - 'group' => array('desclimit'), - 'notice' => array('contentlimit'), - 'throttle' => array('enabled', 'count', 'timespan'), - 'xmpp' => array('enabled', 'server', 'port', 'user'), - 'integration' => array('source'), - 'attachments' => array('uploads', 'file_quota'), - 'url' => array('maxurllength', 'maxnoticelength'), - ); - - /** - * Take arguments for running - * - * @param array $args $_REQUEST args - * - * @return boolean success flag - */ - function prepare($args) - { - parent::prepare($args); - return true; - } - - /** - * Handle the request - * - * @param array $args $_REQUEST data (unused) - * - * @return void - */ - function handle($args) - { - parent::handle($args); - - switch ($this->format) { - case 'xml': - $this->initDocument('xml'); - $this->elementStart('config'); - - // XXX: check that all sections and settings are legal XML elements - - foreach ($this->keys as $section => $settings) { - $this->elementStart($section); - foreach ($settings as $setting) { - $value = $this->setting($section, $setting); - if (is_array($value)) { - $value = implode(',', $value); - } else if ($value === false || $value == '0') { - $value = 'false'; - } else if ($value === true || $value == '1') { - $value = 'true'; - } - - // return theme logo if there's no site specific one - if (empty($value)) { - if ($section == 'site' && $setting == 'logo') { - $value = Theme::path('logo.png'); - } - } - - $this->element($setting, null, $value); - } - $this->elementEnd($section); - } - $this->elementEnd('config'); - $this->endDocument('xml'); - break; - case 'json': - $result = array(); - foreach ($this->keys as $section => $settings) { - $result[$section] = array(); - foreach ($settings as $setting) { - $result[$section][$setting] - = $this->setting($section, $setting); - } - } - $this->initDocument('json'); - $this->showJsonObjects($result); - $this->endDocument('json'); - break; - default: - $this->clientError( - // TRANS: Client error displayed when coming across a non-supported API method. - _('API method not found.'), - 404, - $this->format - ); - break; - } - } - - function setting($section, $key) { - $result = common_config($section, $key); - if ($key == 'file_quota') { - // hack: adjust for the live upload limit - if (common_config($section, 'uploads')) { - $max = ImageFile::maxFileSizeInt(); - } else { - $max = 0; - } - return min($result, $max); - } - return $result; - } - - /** - * Return true if read only. - * - * MAY override - * - * @param array $args other arguments - * - * @return boolean is read only action? - */ - function isReadOnly($args) - { - return true; - } -} diff --git a/actions/apistatusnetversion.php b/actions/apistatusnetversion.php deleted file mode 100644 index b40f42aa16..0000000000 --- a/actions/apistatusnetversion.php +++ /dev/null @@ -1,110 +0,0 @@ -. - * - * @category API - * @package StatusNet - * @author Evan Prodromou - * @author Zach Copley - * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - exit(1); -} - -/** - * Returns a version number for this version of StatusNet, which - * should make things a bit easier for upgrades. - * URL: http://identi.ca/api/statusnet/version.(xml|json) - * Formats: xml, js - * - * @category API - * @package StatusNet - * @author Evan Prodromou - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ -class ApiStatusnetVersionAction extends ApiPrivateAuthAction -{ - /** - * Take arguments for running - * - * @param array $args $_REQUEST args - * - * @return boolean success flag - * - */ - function prepare($args) - { - parent::prepare($args); - return true; - } - - /** - * Handle the request - * - * @param array $args $_REQUEST data (unused) - * - * @return void - */ - function handle($args) - { - parent::handle($args); - - switch ($this->format) { - case 'xml': - $this->initDocument('xml'); - $this->element('version', null, STATUSNET_VERSION); - $this->endDocument('xml'); - break; - case 'json': - $this->initDocument('json'); - print '"'.STATUSNET_VERSION.'"'; - $this->endDocument('json'); - break; - default: - $this->clientError( - // TRANS: Client error displayed when coming across a non-supported API method. - _('API method not found.'), - 404, - $this->format - ); - break; - } - } - - /** - * Return true if read only. - * - * MAY override - * - * @param array $args other arguments - * - * @return boolean is read only action? - */ - function isReadOnly($args) - { - return true; - } -} diff --git a/lib/apiauthaction.php b/lib/apiauthaction.php index 012ed49ceb..4fe8a6e9be 100644 --- a/lib/apiauthaction.php +++ b/lib/apiauthaction.php @@ -113,8 +113,7 @@ class ApiAuthAction extends ApiAction // TRANS: Client error 401. $msg = _('API resource requires read-write access, ' . 'but you only have read access.'); - $this->clientError($msg, 401, $this->format); - exit; + $this->clientError($msg, 401); } } @@ -242,8 +241,7 @@ class ApiAuthAction extends ApiAction } catch (OAuthException $e) { $this->logAuthFailure($e->getMessage()); common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); - $this->clientError($e->getMessage(), 401, $this->format); - exit; + $this->clientError($e->getMessage(), 401); } } @@ -252,7 +250,7 @@ class ApiAuthAction extends ApiAction * * @return boolean true */ - function requiresAuth() + public function requiresAuth() { return true; } @@ -278,8 +276,7 @@ class ApiAuthAction extends ApiAction // show error if the user clicks 'cancel' // TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". - $this->clientError(_('Could not authenticate you.'), 401, $this->format); - exit; + $this->clientError(_('Could not authenticate you.'), 401); } else { @@ -309,8 +306,7 @@ class ApiAuthAction extends ApiAction ); $this->logAuthFailure($msg); // TRANS: Client error thrown when authentication fails. - $this->clientError(_('Could not authenticate you.'), 401, $this->format); - exit; + $this->clientError(_('Could not authenticate you.'), 401); } } } diff --git a/lib/apibareauthaction.php b/lib/apibareauthaction.php index 8c20a031e8..2b1e13cca0 100644 --- a/lib/apibareauthaction.php +++ b/lib/apibareauthaction.php @@ -60,20 +60,6 @@ if (!defined('STATUSNET')) { */ class ApiBareAuthAction extends ApiAuthAction { - /** - * Take arguments for running - * - * @param array $args $_REQUEST args - * - * @return boolean success flag - * - */ - function prepare($args) - { - parent::prepare($args); - return true; - } - /** * Does this API resource require authentication? * diff --git a/lib/router.php b/lib/router.php index 1cbbffd4df..c8277859de 100644 --- a/lib/router.php +++ b/lib/router.php @@ -651,21 +651,21 @@ class Router // statusnet $m->connect('api/statusnet/version.:format', - array('action' => 'ApiStatusnetVersion', + array('action' => 'ApiGNUsocialVersion', 'format' => '(xml|json)')); $m->connect('api/statusnet/config.:format', - array('action' => 'ApiStatusnetConfig', + array('action' => 'ApiGNUsocialConfig', 'format' => '(xml|json)')); - // For older methods, we provide "laconica" base action + // For our current software name, we provide "gnusocial" base action - $m->connect('api/laconica/version.:format', - array('action' => 'ApiStatusnetVersion', + $m->connect('api/gnusocial/version.:format', + array('action' => 'ApiGNUsocialVersion', 'format' => '(xml|json)')); - $m->connect('api/laconica/config.:format', - array('action' => 'ApiStatusnetConfig', + $m->connect('api/gnusocial/config.:format', + array('action' => 'ApiGNUsocialConfig', 'format' => '(xml|json)')); // Groups and tags are newer than 0.8.1 so no backward-compatibility