diff --git a/plinth/modules/zoph/privileged.py b/plinth/modules/zoph/privileged.py index 0c3087cad..2f5655c88 100644 --- a/plinth/modules/zoph/privileged.py +++ b/plinth/modules/zoph/privileged.py @@ -69,8 +69,10 @@ def _get_db_config(): config.read_file(file_handle) return { + 'db_host': config['zoph']['db_host'].strip('"'), 'db_name': config['zoph']['db_name'].strip('"'), 'db_user': config['zoph']['db_user'].strip('"'), + 'db_pass': config['zoph']['db_pass'].strip('"'), } @@ -129,12 +131,19 @@ def restore_database(): """ with action_utils.service_ensure_running('mysql'): db_name = _get_db_config()['db_name'] + db_user = _get_db_config()['db_user'] + db_host = _get_db_config()['db_host'] + db_pass = _get_db_config()['db_pass'] subprocess.run(['mysqladmin', '--force', 'drop', db_name], check=False) subprocess.run(['mysqladmin', 'create', db_name], check=True) with open(DB_BACKUP_FILE, 'r', encoding='utf-8') as db_restore_file: subprocess.run(['mysql', db_name], stdin=db_restore_file, check=True) + # Set the password for user from restored configuration + query = f'ALTER USER {db_user}@{db_host} IDENTIFIED BY "{db_pass}";' + subprocess.run(['mysql'], input=query.encode(), check=True) + @privileged def uninstall():