Text improvement for the OS secret store feature. #5123

This commit is contained in:
Nikhil Mohite authored and GitHub committed 2023-05-24 18:06:21 +05:30
1 parent 3e031ad334
commit fec63c6cf3
10 files changed
+56 -18

No files matched your search

+7 -5
View File
@@ -746,12 +746,12 @@ def get_nodes():
def form_master_password_response(existing=True, present=False, errmsg=None,
is_keyring=False):
keyring_name=''):
return make_json_response(data={
'present': present,
'reset': existing,
'errmsg': errmsg,
'is_keyring': is_keyring,
'keyring_name': keyring_name,
'is_error': True if errmsg else False
})
@@ -821,7 +821,7 @@ def set_master_password():
not validate_master_password(data.get('password')):
return form_master_password_response(
present=False,
is_keyring=True,
keyring_name=config.KEYRING_NAME,
errmsg=gettext("Incorrect master password")
)
from pgadmin.model import Server
@@ -835,6 +835,7 @@ def set_master_password():
KEY_RING_SERVICE_NAME, KEY_RING_DESKTOP_USER.format(
desktop_user.username)) or data['password']:
all_server = Server.query.all()
is_migrated = False
for server in all_server:
if server.password and data['password'] \
and server.save_password:
@@ -845,6 +846,7 @@ def set_master_password():
# Store the password using OS password manager
keyring.set_password(KEY_RING_SERVICE_NAME, name,
password)
is_migrated = True
setattr(server, 'password', None)
db.session.commit()
@@ -856,12 +858,12 @@ def set_master_password():
return form_master_password_response(
existing=True,
present=True,
is_keyring=True
keyring_name=config.KEYRING_NAME if is_migrated else ''
)
else:
return form_master_password_response(
present=False,
is_keyring=True
keyring_name=config.KEYRING_NAME
)
except Exception as e:
current_app.logger.warning(
@@ -802,6 +802,10 @@ class ServerNode(PGChildNodeView):
data = request.form if request.form else json.loads(
request.data
)
old_server_name = ''
if 'name' in data:
old_server_name = server.name
if 'db_res' in data:
data['db_res'] = ','.join(data['db_res'])
@@ -834,6 +838,25 @@ class ServerNode(PGChildNodeView):
)
try:
if len(old_server_name) and old_server_name != server.name and \
not config.DISABLED_LOCAL_PASSWORD_STORAGE:
# If server name is changed then update keyring with
# new server name
password = keyring.get_password(
KEY_RING_SERVICE_NAME,
KEY_RING_USERNAME_FORMAT.format(old_server_name,
server.id))
keyring.set_password(
KEY_RING_SERVICE_NAME,
KEY_RING_USERNAME_FORMAT.format(server.name, server.id),
password)
server_name = KEY_RING_USERNAME_FORMAT.format(
old_server_name, server.id)
# Delete saved password from OS password manager
keyring.delete_password(KEY_RING_SERVICE_NAME,
server_name)
db.session.commit()
except Exception as e:
current_app.logger.exception(e)