* * The Original Code is "VHCS - Virtual Hosting Control System". * * The Initial Developer of the Original Code is moleSoftware GmbH. * Portions created by Initial Developer are Copyright (C) 2001-2006 * by moleSoftware GmbH. All Rights Reserved. * * Portions created by the ispCP Team are Copyright (C) 2006-2010 by * isp Control Panel. All Rights Reserved. * * Portions created by the i-MSCP Team are Copyright (C) 2010-2016 by * i-MSCP - internet Multi Server Control Panel. All Rights Reserved. */ /*********************************************************************************************************************** * Main */ require_once 'imscp-lib.php'; iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onClientScriptStart); check_login('user'); if (!customerHasFeature('sql') || !isset($_GET['id'])) { showBadRequestErrorPage(); } $userId = intval($_GET['id']); if (!sql_delete_user(get_user_domain_id($_SESSION['user_id']), $userId)) { write_log(sprintf('Could not delete SQL user with ID %d. An unexpected error occurred.', $userId), E_USER_ERROR); set_page_message(tr('Could not delete SQL user. An unexpected error occurred.'), 'error'); redirectTo('sql_manage.php'); } set_page_message(tr('SQL user successfully deleted.'), 'success'); write_log(sprintf('%s deleted SQL user with ID %d', decode_idna($_SESSION['user_logged']), $userId), E_USER_NOTICE); redirectTo('sql_manage.php');
<?php // ------------------------------------------------------------------------------- // | VHCS(tm) - Virtual Hosting Control System | // | Copyright (c) 2001-2005 by moleSoftware | // | http://vhcs.net | http://www.molesoftware.com | // | | // | This program is free software; you can redistribute it and/or | // | modify it under the terms of the MPL General Public License | // | as published by the Free Software Foundation; either version 1.1 | // | of the License, or (at your option) any later version. | // | | // | You should have received a copy of the MPL Mozilla Public License | // | along with this program; if not, write to the Open Source Initiative (OSI) | // | http://opensource.org | osi@opensource.org | // | | // ------------------------------------------------------------------------------- include '../include/vhcs-lib.php'; check_login(); if (isset($_GET['id'])) { $db_user_id = $_GET['id']; } else { user_goto('manage_sql.php'); } $dmn_id = get_user_domain_id($sql, $_SESSION['user_id']); check_usr_sql_perms($sql, $db_user_id); sql_delete_user($sql, $dmn_id, $db_user_id); write_log($_SESSION['user_logged'] . " : delete SQL user" . $db_user_id); set_page_message(tr('SQL user was removed successfully!')); user_goto('manage_sql.php');
/** * Deletes the given SQL database * * @param int $dmnId Domain unique identifier * @param int $dbId Databse unique identifier * @return bool TRUE on success, false otherwise */ function delete_sql_database($dmnId, $dbId) { $stmt = exec_query('SELECT sqld_name FROM sql_database WHERE domain_id = ? AND sqld_id = ?', array($dmnId, $dbId)); if (!$stmt->rowCount()) { return false; } $row = $stmt->fetchRow(PDO::FETCH_ASSOC); $dbName = $row['sqld_name']; iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onBeforeDeleteSqlDb, array('sqlDbId' => $dbId, 'sqlDatabaseName' => $dbName)); $stmt = exec_query('SELECT sqlu_id FROM sql_user INNER JOIN sql_database USING(sqld_id) WHERE sqld_id = ? AND domain_id = ?', array($dbId, $dmnId)); while ($row = $stmt->fetchRow(PDO::FETCH_ASSOC)) { if (!sql_delete_user($dmnId, $row['sqlu_id'])) { return false; } } exec_query(sprintf('DROP DATABASE IF EXISTS %s', quoteIdentifier($dbName))); exec_query('DELETE FROM sql_database WHERE domain_id = ? AND sqld_id = ?', array($dmnId, $dbId)); iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onAfterDeleteSqlDb, array('sqlDbId' => $dbId, 'sqlDatabaseName' => $dbName)); return true; }
function delete_sql_database(&$sql, $dmn_id, $db_id) { $query = <<<SQL_QUERY select sqld_name as db_name from sql_database where domain_id = ? and sqld_id = ? SQL_QUERY; $rs = exec_query($sql, $query, array($dmn_id, $db_id)); if ($rs->RecordCount() == 0) { user_goto('manage_sql.php'); } $db_name = quoteIdentifier($rs->fields['db_name']); // // have we any users assigned to this database; // $query = <<<SQL_QUERY select t2.sqlu_id as db_user_id, t2.sqlu_name as db_user_name from sql_database as t1, sql_user as t2 where t1.sqld_id = t2.sqld_id and t1.domain_id = ? and t1.sqld_id = ? SQL_QUERY; $rs = exec_query($sql, $query, array($dmn_id, $db_id)); if ($rs->RecordCount() != 0) { while (!$rs->EOF) { $db_user_id = $rs->fields['db_user_id']; $db_user_name = $rs->fields['db_user_name']; sql_delete_user($sql, $dmn_id, $db_user_id); $rs->MoveNext(); } } // // drop desired database; // $query = <<<SQL_QUERY drop database {$db_name} SQL_QUERY; $rs = exec_query($sql, $query); write_log($_SESSION['user_logged'] . " : delete SQL database -> " . $db_name); // // delete desired database from the vhcs sql_database table; // $query = <<<SQL_QUERY delete from sql_database where domain_id = ? and sqld_id = ? SQL_QUERY; $rs = exec_query($sql, $query, array($dmn_id, $db_id)); }