]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/WebFinger/WebFingerPlugin.php
Merge branch 'tagprofile-ajax-fix' into 'nightly'
[quix0rs-gnu-social.git] / plugins / WebFinger / WebFingerPlugin.php
index 24200a6f36dbd9d486f0e3b2ecfa90f5bf0e66c2..6f8ec9397d34a72dc82cc45b903be947f0beff9f 100644 (file)
@@ -31,6 +31,17 @@ if (!defined('GNUSOCIAL')) { exit(1); }
 
 class WebFingerPlugin extends Plugin
 {
+    const OAUTH_ACCESS_TOKEN_REL    = 'http://apinamespace.org/oauth/access_token';
+    const OAUTH_REQUEST_TOKEN_REL   = 'http://apinamespace.org/oauth/request_token';
+    const OAUTH_AUTHORIZE_REL       = 'http://apinamespace.org/oauth/authorize';
+
+    public $http_alias = false;
+
+    public function initialize()
+    {
+        common_config_set('webfinger', 'http_alias', $this->http_alias);
+    }
+
     public function onRouterInitialized($m)
     {
         $m->connect('.well-known/host-meta', array('action' => 'hostmeta'));
@@ -58,6 +69,18 @@ class WebFingerPlugin extends Plugin
         return true;
     }
 
+    public function onStartGetProfileAcctUri(Profile $profile, &$acct)
+    {
+        $wfr = new WebFingerResource_Profile($profile);
+        try {
+            $acct = $wfr->reconstructAcct();
+        } catch (Exception $e) {
+            return true;
+        }
+
+        return false;
+    }
+
     public function onEndGetWebFingerResource($resource, WebFingerResource &$target=null, array $args=array())
     {
         $profile = null;
@@ -108,6 +131,11 @@ class WebFingerPlugin extends Plugin
                             $type,
                             true);    // isTemplate
         }
+
+        // OAuth connections
+        $links[] = new XML_XRD_Element_link(self::OAUTH_ACCESS_TOKEN_REL,  common_local_url('ApiOAuthAccessToken'));
+        $links[] = new XML_XRD_Element_link(self::OAUTH_REQUEST_TOKEN_REL, common_local_url('ApiOAuthRequestToken'));
+        $links[] = new XML_XRD_Element_link(self::OAUTH_AUTHORIZE_REL,     common_local_url('ApiOAuthAuthorize'));
     }
 
     /**
@@ -128,7 +156,7 @@ class WebFingerPlugin extends Plugin
     public function onPluginVersion(&$versions)
     {
         $versions[] = array('name' => 'WebFinger',
-                            'version' => STATUSNET_VERSION,
+                            'version' => GNUSOCIAL_VERSION,
                             'author' => 'Mikael Nordfeldth',
                             'homepage' => 'http://www.gnu.org/software/social/',
                             // TRANS: Plugin description.