X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fapicheckhub.php;h=e11b7da4b75793a2cbf74382c1519ab9f2cf5ecb;hb=3255e2e1b81ce6d8d867e924eeacff2c9e53d706;hp=d59506b667b415008b715a7a64166b5c45b5b44e;hpb=34a6624452e8b7f60b40181441c6ea2c8158379a;p=quix0rs-gnu-social.git diff --git a/actions/apicheckhub.php b/actions/apicheckhub.php index d59506b667..e11b7da4b7 100644 --- a/actions/apicheckhub.php +++ b/actions/apicheckhub.php @@ -20,7 +20,7 @@ * along with this program. If not, see . * * @category API - * @package GNUSocial + * @package GNUsocial * @author Hannes Mannerheim * @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/ @@ -34,6 +34,8 @@ if (!defined('GNUSOCIAL')) { exit(1); } */ class ApiCheckHubAction extends ApiAuthAction { + protected $url = null; + /** * Take arguments for running * @@ -41,27 +43,24 @@ class ApiCheckHubAction extends ApiAuthAction * * @return boolean success flag */ - function prepare($args) + protected function prepare(array $args=array()) { parent::prepare($args); - $this->url = urldecode($args['url']); - - if (!$this->url) { - $this->clientError(_('No URL.'), 403, 'json'); - return; - } + if ($this->format !== 'json') { + $this->clientError('This method currently only serves JSON.', 415); + } - if (!Validate::uri( - $this->url, array( - 'allowed_schemes' => - array('http', 'https') - ) - )) { - $this->clientError(_('Invalid URL.'), 403, 'json'); - return; - } - + $this->url = urldecode($args['url']); + + if (empty($this->url)) { + $this->clientError(_('No URL.'), 403); + } + + if (!common_valid_http_url($this->url)) { + $this->clientError(_('Invalid URL.'), 403); + } + return true; } @@ -72,23 +71,22 @@ class ApiCheckHubAction extends ApiAuthAction * * @return void */ - function handle($args) + protected function handle() { + parent::handle(); - $discover = new FeedDiscovery(); + $discover = new FeedDiscovery(); - try { - $feeduri = $discover->discoverFromURL($this->url); - if($feeduri) { - $huburi = $discover->getHubLink(); - } - } catch (FeedSubNoFeedException $e) { - $this->clientError(_('No feed found'), 403, 'json'); - return; - } catch (FeedSubBadResponseException $e) { - $this->clientError(_('No hub found'), 403, 'json'); - return; - } + try { + $feeduri = $discover->discoverFromURL($this->url); + if($feeduri) { + $huburi = $discover->getHubLink(); + } + } catch (FeedSubNoFeedException $e) { + $this->clientError(_('No feed found'), 403); + } catch (FeedSubBadResponseException $e) { + $this->clientError(_('No hub found'), 403); + } $hub_status = array(); if ($huburi) {