]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'master' of gitorious.org:statusnet/mainline into testing
authorBrion Vibber <brion@pobox.com>
Thu, 27 May 2010 21:54:43 +0000 (14:54 -0700)
committerBrion Vibber <brion@pobox.com>
Thu, 27 May 2010 21:54:43 +0000 (14:54 -0700)
1  2 
plugins/OpenID/finishaddopenid.php
plugins/OpenID/finishopenidlogin.php
plugins/OpenID/openid.php

index df1763a52cc3843aabbbe891d5a6ee28109a7ae7,18e150a83cbe3288773cdd3c8175495900a163ce..064e976426c58b58d9a6452cd5cb81db2e59bb01
@@@ -103,12 -103,6 +103,12 @@@ class FinishaddopenidAction extends Act
                  $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;
 +            }
 +
              $cur = common_current_user();
  
              $other = oid_get_user($canonical);
                  $this->message(_m('Error connecting user.'));
                  return;
              }
-             if ($sreg) {
-                 if (!oid_update_user($cur, $sreg)) {
-                     $this->message(_m('Error updating profile'));
-                     return;
+             if (Event::handle('StartOpenIDUpdateUser', array($cur, $canonical, &$sreg))) {
+                 if ($sreg) {
+                     if (!oid_update_user($cur, $sreg)) {
+                         $this->message(_m('Error updating profile'));
+                         return;
+                     }
                  }
              }
+             Event::handle('EndOpenIDUpdateUser', array($cur, $canonical, $sreg));
  
              // success!
  
index 57723ff97f33114c48786ca8a9adf3239770127f,60d46d4ce9a0f3c105c7af1aea321e48cb35a6f6..415fd8e66568ba698ff6379dd8db0152005c58cb
@@@ -177,12 -177,6 +177,12 @@@ class FinishopenidloginAction extends A
                  $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) {
              return;
          }
  
+         Event::handle('StartOpenIDCreateNewUser', array($canonical, &$sreg));
          $location = '';
          if (!empty($sreg['country'])) {
              if ($sreg['postcode']) {
  
          $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);
              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);
index 5ee9343d2818715c9e4f802510d8f98f695be52c,cdeedbf4d02a1c5ad3e29179d23324fb07c42d16..574ecca72b9823047b5fce57c5744dd4edd42453
@@@ -164,15 -164,6 +164,15 @@@ function oid_authenticate($openid_url, 
          $auth_request->addExtension($sreg_request);
      }
  
 +    $requiredTeam = common_config('openid', 'required_team');
 +    if ($requiredTeam) {
 +        // LaunchPad OpenID extension
 +        $team_request = new Auth_OpenID_TeamsRequest(array($requiredTeam));
 +        if ($team_request) {
 +            $auth_request->addExtension($team_request);
 +        }
 +    }
 +
      $trust_root = common_root_url(true);
      $process_url = common_local_url($returnto);
  
@@@ -221,11 -212,14 +221,14 @@@ function _oid_print_instructions(
                        'OpenID provider.'));
  }
  
- # update a user from sreg parameters
- function oid_update_user(&$user, &$sreg)
+ /**
+  * Update a user from sreg parameters
+  * @param User $user
+  * @param array $sreg fields from OpenID sreg response
+  * @access private
+  */
+ function oid_update_user($user, $sreg)
  {
      $profile = $user->getProfile();
  
      $orig_profile = clone($profile);
@@@ -295,33 -289,6 +298,33 @@@ function oid_assert_allowed($url
      return;
  }
  
 +/**
 + * Check the teams available in the given OpenID response
 + * Using Launchpad's OpenID teams extension
 + *
 + * @return boolean whether this user is acceptable
 + */
 +function oid_check_teams($response)
 +{
 +    $requiredTeam = common_config('openid', 'required_team');
 +    if ($requiredTeam) {
 +        $team_resp = new Auth_OpenID_TeamsResponse($response);
 +        if ($team_resp) {
 +            $teams = $team_resp->getTeams();
 +        } else {
 +            $teams = array();
 +        }
 +
 +        $match = in_array($requiredTeam, $teams);
 +        $is = $match ? 'is' : 'is not';
 +        common_log(LOG_DEBUG, "Remote user $is in required team $requiredTeam: [" . implode(', ', $teams) . "]");
 +
 +        return $match;
 +    }
 +
 +    return true;
 +}
 +
  class AutosubmitAction extends Action
  {
      var $form_html = null;