]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/finishaddopenid.php
debugging for addopenid problem
[quix0rs-gnu-social.git] / actions / finishaddopenid.php
index 79c99e6b17157864399e384bb843b23017d463c1..35b82ddf9271182da51ee0773e8333f10085c90e 100644 (file)
@@ -33,8 +33,8 @@ class FinishaddopenidAction extends Action {
        }
 
        function try_login() {
-               
-               $consumer = oid_consumer();
+
+               $consumer =& oid_consumer();
 
                $response = $consumer->complete(common_local_url('finishaddopenid'));
 
@@ -58,16 +58,28 @@ class FinishaddopenidAction extends Action {
                                $sreg = $sreg_resp->contents();
                        }
 
-                       $user = $this->get_user($canonical);
+                       common_debug(print_r($sreg, TRUE), __FILE__);
+                       common_debug(print_r($display, TRUE), __FILE__);
+                       common_debug(print_r($canonical, TRUE), __FILE__);
                        
-                       if ($user) {
-                               $this->message(_t('This OpenID is already associated with user "') . $user->nickname . _t('"'));
+                       $other =& $this->get_user($canonical);
+
+                       if ($other) {
+                               $this->message(_t('This OpenID is already associated with user "') . $other->nickname . _t('"'));
                        } else {
-                               $user = common_current_user();
-                               $this->connect_user($user, $display, $canonical);
+                               $cur =& common_current_user();
+                               $result = oid_link_user($cur->id, $display, $canonical);
+                               if (!$result) {
+                                       $this->message(_t('Error connecting user'));
+                                       return;
+                               }
                                if ($sreg) {
-                                       $this->update_user($user, $sreg);
+                                       if (!$this->update_user($cur, $sreg)) {
+                                               $this->message(_t('Error updating profile'));
+                                               return;
+                                       }
                                }
+                               # success!
                                common_redirect(common_local_url('openidsettings'));
                        }
                }
@@ -78,7 +90,7 @@ class FinishaddopenidAction extends Action {
                common_element('p', NULL, $msg);
                common_show_footer();
        }
-       
+
        function get_user($canonical) {
                $user = NULL;
                $oid = User_openid::staticGet('canonical', $canonical);
@@ -88,16 +100,16 @@ class FinishaddopenidAction extends Action {
                return $user;
        }
 
-       function update_user($user, $sreg) {
-               
-               $profile = $user->getProfile();
+       function update_user(&$user, $sreg) {
+
+               $profile =& $user->getProfile();
 
                $orig_profile = clone($profile);
-               
+
                if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
                        $profile->fullname = $sreg['fullname'];
                }
-               
+
                if ($sreg['country']) {
                        if ($sreg['postcode']) {
                                # XXX: use postcode to get city and region
@@ -110,35 +122,23 @@ class FinishaddopenidAction extends Action {
 
                # XXX save language if it's passed
                # XXX save timezone if it's passed
-               
+
                if (!$profile->update($orig_profile)) {
                        common_server_error(_t('Error saving the profile.'));
-                       return;
+                       return false;
                }
 
                $orig_user = clone($user);
-               
+
                if ($sreg['email'] && Validate::email($sreg['email'], true)) {
                        $user->email = $sreg['email'];
                }
-               
+
                if (!$user->update($orig_user)) {
                        common_server_error(_t('Error saving the user.'));
-                       return;
+                       return false;
                }
-       }
-       
-       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();
                
-               if (!$oid->insert()) {
-                       common_server_error(_t('Error connecting OpenID.'));
-                       return;
-               }
+               return true;
        }
 }