Added more checks so that it will pick the correct shared server.

refs #6385
This commit is contained in:
Pradip Parkale 2021-04-27 11:58:47 +05:30 committed by Akshay Joshi
parent f5ef022ef5
commit 7bab200e4d
2 changed files with 8 additions and 15 deletions

View File

@ -618,7 +618,7 @@ class ServerNode(PGChildNodeView):
),
)
def delete_shared_server(self, server_name, gid):
def delete_shared_server(self, server_name, gid, osid):
"""
Delete the shared server
:param server_name:
@ -626,7 +626,8 @@ class ServerNode(PGChildNodeView):
"""
try:
shared_server = SharedServer.query.filter_by(name=server_name,
servergroup_id=gid)
servergroup_id=gid,
osid=osid)
for s in shared_server:
get_driver(PG_DEFAULT_DRIVER).delete_manager(s.id)
db.session.delete(s)
@ -662,7 +663,7 @@ class ServerNode(PGChildNodeView):
get_driver(PG_DEFAULT_DRIVER).delete_manager(s.id)
db.session.delete(s)
db.session.commit()
self.delete_shared_server(server_name, gid)
self.delete_shared_server(server_name, gid, sid)
QueryHistory.clear_history(current_user.id, sid)
except Exception as e:
@ -819,7 +820,7 @@ class ServerNode(PGChildNodeView):
if 'shared' in data and not data['shared']:
# Delete the shared server from DB if server
# owner uncheck shared property
self.delete_shared_server(server.name, gid)
self.delete_shared_server(server.name, gid, server.id)
if arg == 'sslcompression':
value = 1 if value else 0
self._update_server_details(server, sharedserver,
@ -1879,7 +1880,7 @@ class ServerNode(PGChildNodeView):
if server.shared and server.user_id != current_user.id:
shared_server = SharedServer.query.filter_by(
name=server.name, user_id=current_user.id,
servergroup_id=gid).first()
servergroup_id=gid, osid=server.id).first()
if shared_server is None:
return make_json_response(

View File

@ -282,15 +282,7 @@ def does_server_exists(sid, user_id):
# **kwargs parameter can be added to function to filter with more
# parameters.
try:
if Server.query.filter_by(id=sid, user_id=user_id).first():
server = Server.query.filter_by(
id=sid, user_id=user_id
).first()
else:
server = SharedServer.query.filter_by(
id=sid, user_id=user_id
).first()
return True if server is not None else False
return True if Server.query.filter_by(
id=sid).first() is not None else False
except Exception:
return False