From f0ff0c181b4eac4879ea746ba32a3dc8c7441773 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Fri, 8 Mar 2024 15:32:03 -0800 Subject: [PATCH] wordpress: Drop database user when app is uninstalled Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/wordpress/privileged.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plinth/modules/wordpress/privileged.py b/plinth/modules/wordpress/privileged.py index a358a9687..32df4ec52 100644 --- a/plinth/modules/wordpress/privileged.py +++ b/plinth/modules/wordpress/privileged.py @@ -183,14 +183,18 @@ def _load_augeas(): @privileged def uninstall(): """Remove config files and drop database.""" - _drop_database() + _drop_database(DB_HOST, DB_NAME, DB_USER) for file_ in [_public_access_file, _config_file_path, _db_file_path]: file_.unlink(missing_ok=True) -def _drop_database(): +def _drop_database(db_host, db_name, db_user): """Drop the mysql database that was created during install.""" with action_utils.service_ensure_running('mysql'): - query = f'''DROP DATABASE {DB_NAME};''' + query = f"DROP DATABASE {db_name};" subprocess.run(['mysql', '--user', 'root'], input=query.encode(), - check=True) + check=False) + + query = f"DROP USER IF EXISTS {db_user}@{db_host};" + subprocess.run(['mysql', '--user', 'root'], input=query.encode(), + check=False)