forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			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
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    const PROFILEPAGE = 'http://webfinger.net/rel/profile-page';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    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
							 | 
						||
| 
								 | 
							
								        $aliases[] = $this->object->getUri();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            $aliases[] = $this->object->getUrl();
							 | 
						||
| 
								 | 
							
								        } catch (InvalidUrlException $e) {
							 | 
						||
| 
								 | 
							
								            // getUrl failed because no valid URL could be returned, just ignore it
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $aliases;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function updateXRD(XML_XRD $xrd) {
							 | 
						||
| 
								 | 
							
								        $xrd->links[] = new XML_XRD_Element_Link(WebFingerResource::PROFILEPAGE,
							 | 
						||
| 
								 | 
							
								                                        $this->object->getUrl(), 'text/html');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |