/** * @see UserInterface::delete() * @return bool */ public function delete() { global $transaction; if ($this->user) { if ($this->check_delete_dependencies() == true) { $transaction_id = $transaction->begin(); // Sessions if (Session::delete_user_sessions($this->user_id) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } // Profile and Settings $user_profile = new UserProfile_Access($this->user_id); if ($user_profile->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $user_profile_setting = new UserProfileSetting_Access($this->user_id); if ($user_profile_setting->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $user_admin_setting = new UserAdminSetting_Access($this->user_id); if ($user_admin_setting->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } // Groups if (GroupHasUser_Access::delete_by_user_id($this->user_id) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } // System-Logs if (SystemLog::set_user_id_on_null($this->user_id) == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $user_delete_event = new UserDeleteEvent($this->user_id); $event_handler = new EventHandler($user_delete_event); if ($event_handler->get_success() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } if ($this->user->delete() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } $user_post_delete_event = new UserPostDeleteEvent($this->user_id); $event_handler = new EventHandler($user_post_delete_event); if ($event_handler->get_success() == false) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } return false; } else { if ($transaction_id != null) { $transaction->commit($transaction_id); } return true; } } else { return false; } } else { return false; } }