Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions web/pgadmin/preferences/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,14 +313,10 @@ def save_pref(data):
if data['value'] in ['true','false']:
data['value'] = True if data['value'] == 'true' else False

res, _ = Preferences.save_cli(
return Preferences.save_cli(
data['mid'], data['category_id'], data['id'], data['user_id'],
data['value'])

if not res:
return False
return True


@blueprint.route("/update", methods=["PUT"], endpoint="update_pref")
@pga_login_required
Expand Down
23 changes: 17 additions & 6 deletions web/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,18 @@ def set_prefs(username,
invalid_prefs = []
invalid_value_prefs = []
valid_prefs = []
# Module preference objects are registered lazily via
# register_before_app_start() callbacks; pgAdmin4.py runs them at
# web-app startup, but the CLI never does. save_cli() now validates
# against the registered preference type, so we have to trigger
# registration ourselves. PGADMIN_RUNTIME must be set first because
# some register_preferences() methods (e.g. browser) check it; we
# use False so the full server-mode preference set (including
# keyboard shortcuts) is exposed to the CLI. run_before_app_start()
# enters both an app context and a test_request_context internally,
# which registration callbacks that touch current_user require.
app.PGADMIN_RUNTIME = False
app.run_before_app_start()
with app.app_context():
from pgadmin.preferences import save_pref
for opt in pref_options:
Expand All @@ -750,13 +762,14 @@ def set_prefs(username,
'name': final_opt[2],
'user_id': user_id,
'value': val}
if save_pref(_row):
ok, msg = save_pref(_row)
if ok:
valid_prefs.append(_row)

if not json:
table.add_row(jsonlib.dumps(_row))
else:
invalid_value_prefs.append(f)
invalid_value_prefs.append((f, msg))
else:
invalid_prefs.append(f)

Expand All @@ -765,10 +778,8 @@ def set_prefs(username,
(', ').join(
invalid_prefs)))

if len(invalid_value_prefs) >= 1:
print("Invalid value provided for preference(s) "
"[red]{0}[/red].".format(
(', ').join(invalid_value_prefs)))
for name, msg in invalid_value_prefs:
print("Could not set [red]{0}[/red]: {1}".format(name, msg))

if not json and console:
print(table)
Expand Down
Loading