]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/OpenID/openid.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / OpenID / openid.php
index 1b93163e5f5efb307828e5aba64815e79ffa3ff8..403bf7e9da2880912ea2d42979a4ea706240575b 100644 (file)
@@ -17,9 +17,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once(INSTALLDIR.'/plugins/OpenID/User_openid.php');
+if (!defined('STATUSNET')) {
+    exit(1);
+}
 
 require_once('Auth/OpenID.php');
 require_once('Auth/OpenID/Consumer.php');
@@ -27,7 +27,7 @@ require_once('Auth/OpenID/Server.php');
 require_once('Auth/OpenID/SReg.php');
 require_once('Auth/OpenID/MySQLStore.php');
 
-# About one year cookie expiry
+// About one year cookie expiry
 
 define('OPENID_COOKIE_EXPIRY', round(365.25 * 24 * 60 * 60));
 define('OPENID_COOKIE_KEY', 'lastusedopenid');
@@ -36,7 +36,7 @@ function oid_store()
 {
     static $store = null;
     if (!$store) {
-        # Can't be called statically
+        // Can't be called statically
         $user = new User();
         $conn = $user->getDatabaseConnection();
         $store = new Auth_OpenID_MySQLStore($conn);
@@ -85,15 +85,16 @@ function oid_get_last()
 
 function oid_link_user($id, $canonical, $display)
 {
+    global $_PEAR;
 
     $oid = new User_openid();
     $oid->user_id = $id;
     $oid->canonical = $canonical;
     $oid->display = $display;
-    $oid->created = DB_DataObject_Cast::dateTime();
+    $oid->created = common_sql_now();
 
     if (!$oid->insert()) {
-        $err = PEAR::getStaticProperty('DB_DataObject','lastError');
+        $err = &$_PEAR->getStaticProperty('DB_DataObject','lastError');
         return false;
     }
 
@@ -103,9 +104,9 @@ function oid_link_user($id, $canonical, $display)
 function oid_get_user($openid_url)
 {
     $user = null;
-    $oid = User_openid::staticGet('canonical', $openid_url);
+    $oid = User_openid::getKV('canonical', $openid_url);
     if ($oid) {
-        $user = User::staticGet('id', $oid->user_id);
+        $user = User::getKV('id', $oid->user_id);
     }
     return $user;
 }
@@ -130,13 +131,15 @@ function oid_check_immediate($openid_url, $backto=null)
 
 function oid_authenticate($openid_url, $returnto, $immediate=false)
 {
+    if (!common_valid_http_url($openid_url)) {
+        throw new ClientException(_m('No valid URL provided for OpenID.'));
+    }
 
     $consumer = oid_consumer();
 
     if (!$consumer) {
         // TRANS: OpenID plugin server error.
-        common_server_error(_m('Cannot instantiate OpenID consumer object.'));
-        return false;
+        throw new ServerException(_m('Cannot instantiate OpenID consumer object.'));
     }
 
     common_ensure_session();
@@ -147,12 +150,12 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
     if (!$auth_request) {
         common_log(LOG_ERR, __METHOD__ . ": mystery fail contacting $openid_url");
         // TRANS: OpenID plugin message. Given when an OpenID is not valid.
-        return _m('Not a valid OpenID.');
+        throw new ServerException(_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");
         // TRANS: OpenID plugin server error. Given when the OpenID authentication request fails.
         // TRANS: %s is the failure message.
-        return sprintf(_m('OpenID failure: %s'), $auth_request->message);
+        throw new ServerException(sprintf(_m('OpenID failure: %s.'), $auth_request->message));
     }
 
     $sreg_request = Auth_OpenID_SRegRequest::build(// Required
@@ -198,14 +201,12 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
         $redirect_url = $auth_request->redirectURL($trust_root,
                                                    $process_url,
                                                    $immediate);
-        if (!$redirect_url) {
-        } else if (Auth_OpenID::isFailure($redirect_url)) {
+        if (Auth_OpenID::isFailure($redirect_url)) {
             // TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected.
             // TRANS: %s is the failure message.
-            return sprintf(_m('Could not redirect to server: %s'), $redirect_url->message);
-        } else {
-            common_redirect($redirect_url, 303);
+            throw new ServerException(sprintf(_m('Could not redirect to server: %s.'), $redirect_url->message));
         }
+        common_redirect($redirect_url, 303);
     /*
     } else {
         // Generate form markup and render it.
@@ -213,8 +214,8 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
         $form_html = $auth_request->formMarkup($trust_root, $process_url,
                                                $immediate, array('id' => $form_id));
 
-        # XXX: This is cheap, but things choke if we don't escape ampersands
-        # in the HTML attributes
+        // XXX: This is cheap, but things choke if we don't escape ampersands
+        // in the HTML attributes
 
         $form_html = preg_replace('/&/', '&amp;', $form_html);
 
@@ -235,7 +236,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
     */
 }
 
-# Half-assed attempt at a module-private function
+// Half-assed attempt at a module-private function
 
 function _oid_print_instructions()
 {
@@ -264,16 +265,16 @@ function oid_update_user($user, $sreg)
 
     if (!empty($sreg['country'])) {
         if ($sreg['postcode']) {
-            # XXX: use postcode to get city and region
-            # XXX: also, store postcode somewhere -- it's valuable!
+            // XXX: use postcode to get city and region
+            // XXX: also, store postcode somewhere -- it's valuable!
             $profile->location = $sreg['postcode'] . ', ' . $sreg['country'];
         } else {
             $profile->location = $sreg['country'];
         }
     }
 
-    # XXX save language if it's passed
-    # XXX save timezone if it's passed
+    // XXX save language if it's passed
+    // XXX save timezone if it's passed
 
     if (!$profile->update($orig_profile)) {
         // TRANS: OpenID plugin server error.
@@ -319,7 +320,7 @@ function oid_assert_allowed($url)
                 }
             }
             // TRANS: OpenID plugin client exception (403).
-            throw new ClientException(_m("Unauthorized URL used for OpenID login."), 403);
+            throw new ClientException(_m('Unauthorized URL used for OpenID login.'), 403);
         }
     }
 
@@ -345,7 +346,7 @@ function oid_check_teams($response)
 
         $match = in_array($requiredTeam, $teams);
         $is = $match ? 'is' : 'is not';
-        common_log(LOG_DEBUG, "Remote user $is in required team $requiredTeam: [" . implode(', ', $teams) . "]");
+        common_debug("Remote user $is in required team $requiredTeam: [" . implode(', ', $teams) . "]");
 
         return $match;
     }
@@ -358,7 +359,7 @@ class AutosubmitAction extends Action
     var $form_html = null;
     var $form_id = null;
 
-    function handle($args)
+    function handle(array $args=array())
     {
         parent::handle($args);
         $this->showPage();
@@ -373,7 +374,7 @@ class AutosubmitAction extends Action
     function showContent()
     {
         $this->raw('<p style="margin: 20px 80px">');
-        // @fixme this would be better using standard CSS class, but the present theme's a bit scary.
+        // @todo FIXME: This would be better using standard CSS class, but the present theme's a bit scary.
         $this->element('img', array('src' => Theme::path('images/icons/icon_processing.gif', 'base'),
                                     // for some reason the base CSS sets <img>s as block display?!
                                     'style' => 'display: inline'));