]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/finishaddopenid.php
move instructions to top in openid pages
[quix0rs-gnu-social.git] / actions / finishaddopenid.php
index c4488c23bb9fccdedb2cefd692cb65b730fbcbed..f2965f0e4625da82066ce2a2abf484a651716ba9 100644 (file)
@@ -34,7 +34,7 @@ class FinishaddopenidAction extends Action {
 
        function try_login() {
 
-               $consumer = oid_consumer();
+               $consumer =& oid_consumer();
 
                $response = $consumer->complete(common_local_url('finishaddopenid'));
 
@@ -49,8 +49,8 @@ class FinishaddopenidAction extends Action {
                        // identity URL and Simple Registration data (if it was
                        // returned).
                        $display = $response->getDisplayIdentifier();
-                       $canonical = ($response->endpoint->canonicalID) ?
-                         $response->endpoint->canonicalID : $response->getDisplayIdentifier();
+                       $canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
+                         $response->endpoint->canonicalID : $display;
 
                        $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
 
@@ -58,18 +58,25 @@ class FinishaddopenidAction extends Action {
                                $sreg = $sreg_resp->contents();
                        }
 
-                       $user = $this->get_user($canonical);
+                       common_debug('response = ' .print_r($response, TRUE), __FILE__);
+                       common_debug('sreg = ' .print_r($sreg, TRUE), __FILE__);
+                       common_debug('display = ' .print_r($display, TRUE), __FILE__);
+                       common_debug('canonical = ' .print_r($canonical, TRUE), __FILE__);
+                       
+                       $other =& $this->get_user($canonical);
 
-                       if ($user) {
-                               $this->message(_t('This OpenID is already associated with user "') . $user->nickname . _t('"'));
+                       if ($other) {
+                               $this->message(_t('This OpenID is already associated with user "') . $other->nickname . _t('"'));
                        } else {
-                               $user = common_current_user();
-                               if (!$this->connect_user($user, $display, $canonical)) {
-                                       $this->message(_t('Error connecting user'));
+                               $cur =& common_current_user();
+                               common_debug('cur = ' .print_r($cur, TRUE), __FILE__);
+                               $result = oid_link_user($cur->id, $display, $canonical);
+                               if (!$result) {
+                                       $this->message(_t('Error connecting user.'));
                                        return;
                                }
                                if ($sreg) {
-                                       if (!$this->update_user($user, $sreg)) {
+                                       if (!$this->update_user($cur, $sreg)) {
                                                $this->message(_t('Error updating profile'));
                                                return;
                                        }
@@ -95,9 +102,9 @@ class FinishaddopenidAction extends Action {
                return $user;
        }
 
-       function update_user($user, $sreg) {
+       function update_user(&$user, $sreg) {
 
-               $profile = $user->getProfile();
+               $profile =& $user->getProfile();
 
                $orig_profile = clone($profile);
 
@@ -136,21 +143,4 @@ class FinishaddopenidAction extends Action {
                
                return true;
        }
-
-       function connect_user($user, $display, $canonical) {
-
-               $oid = new User_openid();
-               $oid->display = $display;
-               $oid->canonical = $canonical;
-               $oid->user_id = $user->id;
-               $oid->created = DB_DataObject_Cast::dateTime();
-
-               common_debug('Saving ' . print_r($oid, TRUE), __FILE__);
-               
-               if (!$oid->insert()) {
-                       $err = PEAR::getStaticProperty('DB_DataObject','lastError');
-                       common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__);
-                       return false;
-               }
-       }
 }