]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/OpenID/finishopenidlogin.php
Added wait on signon failure due to update contacts failing
[quix0rs-gnu-social.git] / plugins / OpenID / finishopenidlogin.php
index 5b1a7cee09610329f0d95ce80b430ae7572b0ebd..0c03b5c4db8b5758e9947c2c1d124aef9ddaed82 100644 (file)
@@ -193,6 +193,12 @@ class FinishopenidloginAction extends Action
                 $sreg = $sreg_resp->contents();
             }
 
+            // Launchpad teams extension
+            if (!oid_check_teams($response)) {
+                $this->message(_m('OpenID authentication aborted: you are not allowed to login to this site.'));
+                return;
+            }
+
             $user = oid_get_user($canonical);
 
             if ($user) {
@@ -304,6 +310,8 @@ class FinishopenidloginAction extends Action
             return;
         }
 
+        Event::handle('StartOpenIDCreateNewUser', array($canonical, &$sreg));
+
         $location = '';
         if (!empty($sreg['country'])) {
             if ($sreg['postcode']) {
@@ -343,6 +351,8 @@ class FinishopenidloginAction extends Action
 
         $result = oid_link_user($user->id, $canonical, $display);
 
+        Event::handle('EndOpenIDCreateNewUser', array($user, $canonical, $sreg));
+
         oid_set_last($display);
         common_set_user($user);
         common_real_login(true);
@@ -385,7 +395,11 @@ class FinishopenidloginAction extends Action
             return;
         }
 
-        oid_update_user($user, $sreg);
+        if (Event::handle('StartOpenIDUpdateUser', array($user, $canonical, &$sreg))) {
+            oid_update_user($user, $sreg);
+        }
+        Event::handle('EndOpenIDUpdateUser', array($user, $canonical, $sreg));
+
         oid_set_last($display);
         common_set_user($user);
         common_real_login(true);