From 9f035e2847e0d119ca3d70e02df6f4fa73ca64c3 Mon Sep 17 00:00:00 2001
From: Zach Copley <zach@controlyourself.ca>
Date: Wed, 11 Feb 2009 21:41:56 -0800
Subject: Code to handle PEAR_Errors raised by DB_DataObject that are bubbling
 up, but are actually expected and can safely be ignored.

---
 actions/emailsettings.php | 22 ++++++++++++++++++++++
 actions/register.php      | 23 ++++++++++++++++++++++-
 2 files changed, 44 insertions(+), 1 deletion(-)

(limited to 'actions')

diff --git a/actions/emailsettings.php b/actions/emailsettings.php
index b84acb214..c6c983453 100644
--- a/actions/emailsettings.php
+++ b/actions/emailsettings.php
@@ -487,4 +487,26 @@ class EmailsettingsAction extends AccountSettingsAction
             return $other->id != $user->id;
         }
     }
+    
+    /**
+     * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+     *
+     * In this case email don't exist in the DB yet, so DB_DataObject
+     * throws an error. Overrided from Action.
+     *
+     * @param PEAR_Error 
+     *
+     * @return nothing
+     */
+     
+    function checkDB_DataObjectError($error) {
+        if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
+           
+           // Do nothing.
+                      
+        } else {
+            parent::checkDB_DataObjectError($error);
+        }
+    }
+    
 }
diff --git a/actions/register.php b/actions/register.php
index 5d7a8ce69..853bd0cf6 100644
--- a/actions/register.php
+++ b/actions/register.php
@@ -223,10 +223,31 @@ class RegisterAction extends Action
      */
 
     function nicknameExists($nickname)
-    {
+    {        
         $user = User::staticGet('nickname', $nickname);
         return ($user !== false);
     }
+        
+    /**
+     * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+     *
+     * In this case nickname and email don't exist in the DB yet,
+     * so DB_DataObject throws an error. Overrided from Action.
+     *
+     * @param PEAR_Error 
+     *
+     * @return nothing
+     */
+     
+    function checkDB_DataObjectError($error) {
+        if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
+           
+           // Do nothing.
+                      
+        } else {
+            parent::checkDB_DataObjectError($error);
+        }
+    }
 
     /**
      * Does the given email address already exist?
-- 
cgit v1.2.3-54-g00ecf