]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
use query method to do some transactions
authorEvan Prodromou <evan@prodromou.name>
Thu, 19 Jun 2008 03:36:19 +0000 (23:36 -0400)
committerEvan Prodromou <evan@prodromou.name>
Thu, 19 Jun 2008 03:36:19 +0000 (23:36 -0400)
darcs-hash:20080619033619-84dde-e4fcc00f5d86cb0d11feff5f88f719ea72d3318e.gz

actions/finishaddopenid.php
actions/profilesettings.php
lib/openid.php

index 9ba3189b33fdeff3bd9492eb39b6dae27ccf0063..237f0454f7ded23a67486bf89b3142e72d6f6670 100644 (file)
@@ -55,9 +55,23 @@ class FinishaddopenidAction extends Action {
                        if ($sreg_resp) {
                                $sreg = $sreg_resp->contents();
                        }
-                       
+
                        $cur =& common_current_user();
-                       common_debug('cur = ' .print_r($cur, TRUE), __FILE__);
+                       $other = $this->get_user($canonical);
+                       
+                       if ($other) {
+                               if ($other->id == $cur->id) {
+                                       $this->message(_t('You already have this OpenID!'));
+                               } else {
+                                       $this->message(_t('Someone else already has this OpenID.'));
+                               }
+                               return;
+                       }
+
+                       # start a transaction
+                       
+                       $cur->query('BEGIN');
+                       
                        $result = oid_link_user($cur->id, $display, $canonical);
                        
                        if (!$result) {
@@ -70,7 +84,11 @@ class FinishaddopenidAction extends Action {
                                        return;
                                }
                        }
+                       
                        # success!
+                       
+                       $cur->query('COMMIT');
+                       
                        common_redirect(common_local_url('openidsettings'));
                }
        }
index 159dab18a91015fb27d4e7be0b544b3ab9609b3e..75e3758aba9da48900adbdf2967ed167cb13574f 100644 (file)
@@ -112,16 +112,13 @@ class ProfilesettingsAction extends SettingsAction {
                $user = common_current_user();
                assert(!is_null($user)); # should already be checked
 
-               # FIXME: transaction!
-
+               $user->query('BEGIN');
+               
                $original = clone($user);
 
                $user->nickname = $nickname;
                $user->email = $email;
 
-               common_debug('Updating, nickname ="'.$user->nickname.'" and email ="'.$user->email.'"');
-               common_debug('Original, nickname ="'.$original->nickname.'" and email ="'.$original->email.'"');
-               
                $result = $user->update($original);
                
                if (!$result) {
index f5f98201d34e7a521e3f3c6dd8e2961cf4cd8a70..67f8edf7b3972385cb138d86d1c8565b38aa88ca 100644 (file)
@@ -57,10 +57,6 @@ function oid_link_user($id, $canonical, $display) {
                return false;
        }
        
-       # For some reason, autocommit is turned off
-       
-       $oid->query('COMMIT');
-       
        return true;
 }