forked from GNUsocial/gnu-social
396f1e92ca
because it might help us (and especially StatusNet sites) to recognize profiles that have migrated from HTTP to HTTPS!
55 lines
1.4 KiB
PHP
55 lines
1.4 KiB
PHP
<?php
|
|
/**
|
|
* WebFinger resource parent class
|
|
*
|
|
* @package GNUsocial
|
|
* @author Mikael Nordfeldth
|
|
* @copyright 2013 Free Software Foundation, Inc.
|
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
|
* @link http://status.net/
|
|
*/
|
|
|
|
abstract class WebFingerResource
|
|
{
|
|
protected $identities = array();
|
|
|
|
protected $object = null;
|
|
protected $type = null;
|
|
|
|
public function __construct(Managed_DataObject $object)
|
|
{
|
|
$this->object = $object;
|
|
}
|
|
|
|
public function getObject()
|
|
{
|
|
if ($this->object === null) {
|
|
throw new ServerException('Object is not set');
|
|
}
|
|
return $this->object;
|
|
}
|
|
|
|
public function getAliases()
|
|
{
|
|
$aliases = array();
|
|
|
|
// Add the URI as an identity, this is _not_ necessarily an HTTP url
|
|
$uri = $this->object->getUri();
|
|
$aliases[] = $uri;
|
|
if (common_config('webfinger', 'http_alias')
|
|
&& strtolower(parse_url($uri, PHP_URL_SCHEME)) === 'https') {
|
|
$aliases[] = preg_replace('/^https:/', 'http:', $uri, 1);
|
|
}
|
|
|
|
try {
|
|
$aliases[] = $this->object->getUrl();
|
|
} catch (InvalidUrlException $e) {
|
|
// getUrl failed because no valid URL could be returned, just ignore it
|
|
}
|
|
|
|
return $aliases;
|
|
}
|
|
|
|
abstract public function updateXRD(XML_XRD $xrd);
|
|
}
|