From 0d3b2499fc311892780c36418e56c237f1a6763b Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Fri, 29 Mar 2024 16:52:48 +0530 Subject: [PATCH] fix: don't use `frappe.flags` for `mariadb_user_host_login_scope` This gets reset whenever we call `frappe.init()` again Signed-off-by: Akhil Narang --- frappe/commands/site.py | 7 +++++-- frappe/database/__init__.py | 4 ++-- frappe/database/mariadb/setup_db.py | 6 +++--- frappe/installer.py | 5 ++++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index d24fe3e68f..e7165e3b30 100644 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -90,6 +90,8 @@ def new_site( frappe.init(site=site, new_site=True) + mariadb_user_host_login_scope = None + if no_mariadb_socket: click.secho( "--no-mariadb-socket is DEPRECATED; " @@ -97,9 +99,9 @@ def new_site( "The name of this option was misleading: it had nothing to do with sockets.", fg="yellow", ) - frappe.flags.mariadb_user_host_login_scope = "%" + mariadb_user_host_login_scope = "%" if mariadb_user_host_login_scope: - frappe.flags.mariadb_user_host_login_scope = mariadb_user_host_login_scope + mariadb_user_host_login_scope = mariadb_user_host_login_scope rollback_callback = CallbackManager() @@ -122,6 +124,7 @@ def new_site( db_user=db_user, setup_db=setup_db, rollback_callback=rollback_callback, + mariadb_user_host_login_scope=mariadb_user_host_login_scope, ) if set_default: diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index fd59452c97..cf911f11e2 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -8,7 +8,7 @@ from shutil import which from frappe.database.database import savepoint -def setup_database(force, verbose=None): +def setup_database(force, verbose=None, mariadb_user_host_login_scope=None): import frappe if frappe.conf.db_type == "postgres": @@ -18,7 +18,7 @@ def setup_database(force, verbose=None): else: import frappe.database.mariadb.setup_db - return frappe.database.mariadb.setup_db.setup_database(force, verbose) + return frappe.database.mariadb.setup_db.setup_database(force, verbose, mariadb_user_host_login_scope) def bootstrap_database(verbose=None, source_sql=None): diff --git a/frappe/database/mariadb/setup_db.py b/frappe/database/mariadb/setup_db.py index 58419dee0d..95cd1dc824 100644 --- a/frappe/database/mariadb/setup_db.py +++ b/frappe/database/mariadb/setup_db.py @@ -19,7 +19,7 @@ def get_mariadb_version(version_string: str = ""): return version.rsplit(".", 1) -def setup_database(force, verbose): +def setup_database(force, verbose, mariadb_user_host_login_scope=None): frappe.local.session = frappe._dict({"user": "Administrator"}) db_user = frappe.conf.db_user @@ -28,8 +28,8 @@ def setup_database(force, verbose): dbman = DbManager(root_conn) dbman_kwargs = {} - if frappe.flags.mariadb_user_host_login_scope is not None: - dbman_kwargs["host"] = frappe.flags.mariadb_user_host_login_scope + if mariadb_user_host_login_scope is not None: + dbman_kwargs["host"] = mariadb_user_host_login_scope dbman.create_user(db_user, frappe.conf.db_password, **dbman_kwargs) if verbose: diff --git a/frappe/installer.py b/frappe/installer.py index f6214da580..36221d9e68 100644 --- a/frappe/installer.py +++ b/frappe/installer.py @@ -54,6 +54,7 @@ def _new_site( db_user=None, setup_db=True, rollback_callback=None, + mariadb_user_host_login_scope=None, ): """Install a new Frappe site""" @@ -95,6 +96,7 @@ def _new_site( db_user=db_user, setup=setup_db, rollback_callback=rollback_callback, + mariadb_user_host_login_scope=mariadb_user_host_login_scope, ) apps_to_install = ["frappe"] + (frappe.conf.get("install_apps") or []) + (list(install_apps) or []) @@ -132,6 +134,7 @@ def install_db( db_user=None, setup=True, rollback_callback=None, + mariadb_user_host_login_scope=None, ): import frappe.database from frappe.database import bootstrap_database, drop_user_and_database, setup_database @@ -160,7 +163,7 @@ def install_db( frappe.flags.root_password = root_password if setup: - setup_database(force, verbose) + setup_database(force, verbose, mariadb_user_host_login_scope) if rollback_callback: rollback_callback.add(lambda: drop_user_and_database(db_name, db_user or db_name))