/** * Deletes a user. * * @param integer $user_id The id of the user to delete. * * @throws Vilma_Exception */ public function deleteUser($user_id) { $user = $this->getUser($user_id); try { $this->_db->beginDbTransaction(); /* Delete all virtual emails for this user. */ $sql = 'DELETE FROM ' . $this->_params['tables']['virtuals'] . ' WHERE ' . $this->_getTableField('virtuals', 'virtual_destination') . ' = ?'; $values = array($user['user_name']); $this->_db->delete($sql, $values); /* Delete the actual user. */ $sql = 'DELETE FROM ' . $this->_params['tables']['users'] . ' WHERE ' . $this->_getTableField('users', 'user_id') . ' = ?'; $values = array((int) $user_id); $this->_db->delete($sql, $values); $this->_db->commitDbTransaction(); } catch (Horde_Db_Exception $e) { $this->_db->rollbackDbTransaction(); throw new Vilma_Exception($e); } Vilma_MailboxDriver::factory()->deleteMailbox(Vilma::stripUser($user['user_name']), Vilma::stripDomain($user['user_name'])); }