$this->client_error(_t('That email address is already confirmed.'));
return;
}
+
$cur->query('BEGIN');
+
$orig_user = clone($cur);
$cur->email = $confirm_email->email;
- common_debug('cur email = "' . $cur->email . '"', __FILE__);
$result = $cur->update($orig_user);
+
if (!$result) {
- $this->server_error(_t('Error setting email address.'));
+ common_log_db_error($cur, 'UPDATE', __FILE__);
return;
}
+
$result = $confirm_email->delete();
+
if (!$result) {
- $this->server_error(_t('Error deleting code.'));
+ common_log_db_error($confirm_email, 'DELETE', __FILE__);
return;
}
+
$cur->query('COMMIT');
+
common_show_header(_t('Confirm E-mail Address'));
common_element('p', NULL,
_t('The email address "') . $cur->email .
$profile->created = DB_DataObject_Cast::dateTime(); # current time
$id = $profile->insert();
+
if (!$id) {
- return FALSE;
+ common_log_db_error($profile, 'INSERT', __FILE__);
+ return FALSE;
}
$user = new User();
$user->id = $id;
$user->uri = common_user_uri($user);
$result = $user->insert();
+
if (!$result) {
+ common_log_db_error($user, 'INSERT', __FILE__);
return FALSE;
}
if ($email) {
+
$confirm = new Confirm_email();
$confirm->code = common_good_rand(16);
$confirm->user_id = $user->id;
$result = $confirm->insert();
if (!$result) {
+ common_log_db_error($confirm, 'INSERT', __FILE__);
return FALSE;
}
}
}
}
+function common_log_db_error($object, $verb, $filename=NULL) {
+ $objstr = common_log_objstring($ojbect);
+ $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
+ common_log(LOG_ERROR, $last_error->message . '(' . $verb . ' on ' . $objstr . ')', $filename);
+}
+
+function common_log_objstring($object) {
+ if (is_null($object)) {
+ return "NULL";
+ }
+ $arr = $object->toArray();
+ $fields = array();
+ foreach ($arr as $k => $v) {
+ $fields[] = "$k='$v'";
+ }
+ $ojbstring = $object->tableName() . '[' . implode(',', $fields) . ']';
+ return $objstring;
+}
+
function common_valid_http_url($url) {
return Validate::uri($url, array('allowed_schemes' => array('http', 'https')));
}