Make queries narrower

This commit is contained in:
luukas 2022-05-16 01:02:17 +03:00
parent 27d310e2de
commit 0115421243
6 changed files with 11 additions and 13 deletions

View File

@ -74,8 +74,7 @@ class RolesController:
if role:
servers_query = PermissionsServers.get_servers_from_role(role_id)
# TODO: this query needs to be narrower
servers = {s.server_id.server_id for s in servers_query}
servers = {s.server_id_id for s in servers_query}
role["servers"] = servers
# logger.debug("role: ({}) {}".format(role_id, role))
return role

View File

@ -109,9 +109,7 @@ class ServersController:
@staticmethod
def get_authorized_servers_stats_api_key(api_key: ApiKeys):
server_data = []
authorized_servers = ServersController.get_authorized_servers(
api_key.user.user_id
)
authorized_servers = ServersController.get_authorized_servers(api_key.user_id)
for server in authorized_servers:
latest = HelperServers.get_latest_server_stats(server.get("server_id"))

View File

@ -324,7 +324,7 @@ class HelpersManagement:
"backup_path": row.server_id.backup_path,
"excluded_dirs": row.excluded_dirs,
"max_backups": row.max_backups,
"server_id": row.server_id.server_id,
"server_id": row.server_id_id,
"compress": row.compress,
}
except IndexError:

View File

@ -207,14 +207,16 @@ class PermissionsServers:
def get_server_user_list(server_id):
final_users = []
server_roles = RoleServers.select().where(RoleServers.server_id == server_id)
super_users = Users.select().where(
super_users = Users.select(Users.user_id).where(
Users.superuser == True # pylint: disable=singleton-comparison
)
for role in server_roles:
users = UserRoles.select().where(UserRoles.role_id == role.role_id)
users = UserRoles.select(UserRoles.user_id).where(
UserRoles.role_id == role.role_id
)
for user in users:
if user.user_id.user_id not in final_users:
final_users.append(user.user_id.user_id)
if user.user_id_id not in final_users:
final_users.append(user.user_id_id)
for suser in super_users:
if suser.user_id not in final_users:
final_users.append(suser.user_id)

View File

@ -298,8 +298,7 @@ class HelperUsers:
.join(Roles, JOIN.INNER)
.where(UserRoles.user_id == user_id)
)
# TODO: this query needs to be narrower
roles = {r.role_id.role_id for r in roles_query}
roles = {r.role_id_id for r in roles_query}
if isinstance(user, dict):
user["roles"] = roles

View File

@ -1893,7 +1893,7 @@ class PanelHandler(BaseHandler):
self.write(
self.controller.authentication.generate(
key.user_id.user_id, {"token_id": key.token_id}
key.user_id_id, {"token_id": key.token_id}
)
)
self.finish()