2021-09-08 22:01:10 +00:00
|
|
|
import logging
|
|
|
|
|
2022-03-23 02:50:12 +00:00
|
|
|
from app.classes.models.server_permissions import (
|
2022-04-11 05:23:55 +00:00
|
|
|
Permissions_Servers,
|
2022-03-23 02:50:12 +00:00
|
|
|
Enum_Permissions_Server,
|
|
|
|
)
|
2022-04-11 05:23:55 +00:00
|
|
|
from app.classes.models.users import helper_users, ApiKeys
|
|
|
|
from app.classes.models.roles import helper_roles
|
|
|
|
from app.classes.models.servers import helper_servers
|
|
|
|
from app.classes.shared.main_models import db_shortcuts
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
2022-03-23 02:50:12 +00:00
|
|
|
class Server_Perms_Controller:
|
2022-01-26 01:45:30 +00:00
|
|
|
@staticmethod
|
|
|
|
def get_server_user_list(server_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_server_user_list(server_id)
|
2022-01-26 01:45:30 +00:00
|
|
|
|
2021-09-08 22:01:10 +00:00
|
|
|
@staticmethod
|
|
|
|
def list_defined_permissions():
|
2022-04-11 05:23:55 +00:00
|
|
|
permissions_list = Permissions_Servers.get_permissions_list()
|
2021-09-08 22:01:10 +00:00
|
|
|
return permissions_list
|
2021-09-28 21:48:54 +00:00
|
|
|
|
2021-09-08 22:01:10 +00:00
|
|
|
@staticmethod
|
|
|
|
def get_mask_permissions(role_id, server_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
permissions_mask = Permissions_Servers.get_permissions_mask(role_id, server_id)
|
2021-09-08 22:01:10 +00:00
|
|
|
return permissions_mask
|
2021-09-28 21:48:54 +00:00
|
|
|
|
2021-09-08 22:01:10 +00:00
|
|
|
@staticmethod
|
|
|
|
def get_role_permissions(role_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
permissions_list = Permissions_Servers.get_role_permissions_list(role_id)
|
2021-09-08 22:01:10 +00:00
|
|
|
return permissions_list
|
|
|
|
|
2021-09-08 22:20:38 +00:00
|
|
|
@staticmethod
|
|
|
|
def add_role_server(server_id, role_id, rs_permissions="00000000"):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.add_role_server(server_id, role_id, rs_permissions)
|
2021-09-08 22:20:38 +00:00
|
|
|
|
2021-11-29 21:22:46 +00:00
|
|
|
@staticmethod
|
|
|
|
def get_server_roles(server_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_server_roles(server_id)
|
2021-11-29 21:22:46 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def backup_role_swap(old_server_id, new_server_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
role_list = Permissions_Servers.get_server_roles(old_server_id)
|
2021-11-29 21:22:46 +00:00
|
|
|
for role in role_list:
|
2022-04-11 05:23:55 +00:00
|
|
|
Permissions_Servers.add_role_server(
|
2022-03-23 02:50:12 +00:00
|
|
|
new_server_id,
|
|
|
|
role.role_id,
|
2022-04-11 05:23:55 +00:00
|
|
|
Permissions_Servers.get_permissions_mask(
|
2022-03-23 02:50:12 +00:00
|
|
|
int(role.role_id), int(old_server_id)
|
|
|
|
),
|
|
|
|
)
|
2022-04-11 05:23:55 +00:00
|
|
|
# Permissions_Servers.add_role_server(new_server_id, role.role_id,"00001000")
|
2022-03-23 02:50:12 +00:00
|
|
|
|
2022-03-23 06:06:13 +00:00
|
|
|
# **********************************************************************************
|
2021-09-08 22:01:10 +00:00
|
|
|
# Servers Permissions Methods
|
2022-03-23 06:06:13 +00:00
|
|
|
# **********************************************************************************
|
2021-09-08 22:01:10 +00:00
|
|
|
@staticmethod
|
|
|
|
def get_permissions_mask(role_id, server_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_permissions_mask(role_id, server_id)
|
2021-09-28 21:48:54 +00:00
|
|
|
|
2021-09-08 22:01:10 +00:00
|
|
|
@staticmethod
|
2022-03-23 02:50:12 +00:00
|
|
|
def set_permission(
|
|
|
|
permission_mask, permission_tested: Enum_Permissions_Server, value
|
|
|
|
):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.set_permission(
|
2022-03-23 02:50:12 +00:00
|
|
|
permission_mask, permission_tested, value
|
|
|
|
)
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def get_role_permissions_list(role_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_role_permissions_list(role_id)
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
@staticmethod
|
2022-01-15 00:23:50 +00:00
|
|
|
def get_user_id_permissions_list(user_id: str, server_id: str):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_user_id_permissions_list(user_id, server_id)
|
2022-01-15 00:23:50 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def get_api_key_id_permissions_list(key_id: str, server_id: str):
|
2022-04-11 05:23:55 +00:00
|
|
|
key = helper_users.get_user_api_key(key_id)
|
|
|
|
return Permissions_Servers.get_api_key_permissions_list(key, server_id)
|
2022-01-15 00:23:50 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def get_api_key_permissions_list(key: ApiKeys, server_id: str):
|
2022-04-11 05:23:55 +00:00
|
|
|
return Permissions_Servers.get_api_key_permissions_list(key, server_id)
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def get_authorized_servers_stats_from_roles(user_id):
|
2022-04-11 05:23:55 +00:00
|
|
|
user_roles = helper_users.get_user_roles_id(user_id)
|
2021-09-08 22:01:10 +00:00
|
|
|
roles_list = []
|
|
|
|
role_server = []
|
|
|
|
authorized_servers = []
|
|
|
|
server_data = []
|
|
|
|
|
|
|
|
for u in user_roles:
|
2022-04-11 05:23:55 +00:00
|
|
|
roles_list.append(helper_roles.get_role(u.role_id))
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
for r in roles_list:
|
2022-04-11 05:23:55 +00:00
|
|
|
role_test = Permissions_Servers.get_role_servers_from_role_id(
|
2022-03-23 02:50:12 +00:00
|
|
|
r.get("role_id")
|
|
|
|
)
|
2021-09-08 22:01:10 +00:00
|
|
|
for t in role_test:
|
|
|
|
role_server.append(t)
|
|
|
|
|
|
|
|
for s in role_server:
|
2022-04-11 05:23:55 +00:00
|
|
|
authorized_servers.append(helper_servers.get_server_data_by_id(s.server_id))
|
2021-09-08 22:01:10 +00:00
|
|
|
|
|
|
|
for s in authorized_servers:
|
2022-04-11 05:23:55 +00:00
|
|
|
latest = helper_servers.get_latest_server_stats(s.get("server_id"))
|
2022-03-23 02:50:12 +00:00
|
|
|
server_data.append(
|
2022-04-11 05:23:55 +00:00
|
|
|
{"server_data": s, "stats": db_shortcuts.return_rows(latest)[0]}
|
2022-03-23 02:50:12 +00:00
|
|
|
)
|
2021-09-08 22:01:10 +00:00
|
|
|
return server_data
|