]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OpenID: add option to enable asking for a username to append to the trusted provider...
authorBrion Vibber <brion@pobox.com>
Fri, 28 May 2010 23:52:17 +0000 (16:52 -0700)
committerBrion Vibber <brion@pobox.com>
Fri, 28 May 2010 23:52:17 +0000 (16:52 -0700)
$config['openid']['append_username'] = true;
or check 'Append a username to base URL' in OpenID admin panel.

plugins/OpenID/openid.php
plugins/OpenID/openidadminpanel.php
plugins/OpenID/openidlogin.php

index 574ecca72b9823047b5fce57c5744dd4edd42453..8be02e031caef4ee1e969b6f822db0bc68e00245 100644 (file)
@@ -144,8 +144,10 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
 
     // Handle failure status return values.
     if (!$auth_request) {
+        common_log(LOG_ERR, __METHOD__ . ": mystery fail contacting $openid_url");
         return _m('Not a valid OpenID.');
     } else if (Auth_OpenID::isFailure($auth_request)) {
+        common_log(LOG_ERR, __METHOD__ . ": OpenID fail to $openid_url: $auth_request->message");
         return sprintf(_m('OpenID failure: %s'), $auth_request->message);
     }
 
index 0633063662f7095c566d420d599d1bb56d18c004..ce4806cc897f9af0b55edb6289b9d729bea5cb52 100644 (file)
@@ -91,6 +91,7 @@ class OpenidadminpanelAction extends AdminPanelAction
         );
 
         static $booleans = array(
+            'openid' => array('append_username'),
             'site' => array('openidonly')
         );
 
@@ -222,6 +223,15 @@ class OpenIDAdminPanelForm extends AdminForm
         );
         $this->unli();
 
+        $this->li();
+        $this->out->checkbox(
+            'append_username', _m('Append a username to base URL'),
+            (bool) $this->value('append_username', 'openid'),
+            _m('Login form will show the base URL and prompt for a username to add at the end. Use when OpenID provider URL should be the profile page for individual users.'),
+            'true'
+        );
+        $this->unli();
+
         $this->li();
         $this->input(
             'required_team',
index 8c559c934637bc4704da96180c330a53df27247a..ffedc6481008a88da7e3a7e1a490fdc9f3e14f90 100644 (file)
@@ -32,6 +32,9 @@ class OpenidloginAction extends Action
             $provider = common_config('openid', 'trusted_provider');
             if ($provider) {
                 $openid_url = $provider;
+                if (common_config('openid', 'append_username')) {
+                    $openid_url .= $this->trimmed('openid_username');
+                }
             } else {
                 $openid_url = $this->trimmed('openid_url');
             }
@@ -94,7 +97,15 @@ class OpenidloginAction extends Action
     function showScripts()
     {
         parent::showScripts();
-        $this->autofocus('openid_url');
+        if (common_config('openid', 'trusted_provider')) {
+            if (common_config('openid', 'append_username')) {
+                $this->autofocus('openid_username');
+            } else {
+                $this->autofocus('rememberme');
+            }
+        } else {
+            $this->autofocus('openid_url');
+        }
     }
 
     function title()
@@ -122,10 +133,17 @@ class OpenidloginAction extends Action
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
         $provider = common_config('openid', 'trusted_provider');
+        $appendUsername = common_config('openid', 'append_username');
         if ($provider) {
             $this->element('label', array(), _m('OpenID provider'));
             $this->element('span', array(), $provider);
+            if ($appendUsername) {
+                $this->element('input', array('id' => 'openid_username',
+                                              'name' => 'openid_username',
+                                              'style' => 'float: none'));
+            }
             $this->element('p', 'form_guide',
+                           ($appendUsername ? _m('Enter your username.') . ' ' : '') .
                            _m('You will be sent to the provider\'s site for authentication.'));
             $this->hidden('openid_url', $provider);
         } else {