crafty-4/app/classes/controllers/server_perms_controller.py

121 lines
4.2 KiB
Python
Raw Normal View History

2021-09-08 22:01:10 +00:00
import logging
2022-05-26 12:50:20 +00:00
from app.classes.controllers.servers_controller import ServersController
2021-09-08 22:01:10 +00:00
from app.classes.models.server_permissions import (
PermissionsServers,
EnumPermissionsServer,
)
from app.classes.models.users import HelperUsers, ApiKeys
from app.classes.models.roles import HelperRoles
from app.classes.models.servers import HelperServers
2022-05-26 12:50:20 +00:00
from app.classes.shared.server import Server
2021-09-08 22:01:10 +00:00
logger = logging.getLogger(__name__)
class ServerPermsController:
@staticmethod
def get_server_user_list(server_id):
return PermissionsServers.get_server_user_list(server_id)
2021-09-08 22:01:10 +00:00
@staticmethod
def list_defined_permissions():
permissions_list = PermissionsServers.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):
permissions_mask = PermissionsServers.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_dict(role_id):
return PermissionsServers.get_role_permissions_dict(role_id)
2021-09-08 22:01:10 +00:00
2021-09-08 22:20:38 +00:00
@staticmethod
def add_role_server(server_id, role_id, rs_permissions="00000000"):
return PermissionsServers.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):
return PermissionsServers.get_server_roles(server_id)
2021-11-29 21:22:46 +00:00
@staticmethod
def backup_role_swap(old_server_id, new_server_id):
role_list = PermissionsServers.get_server_roles(old_server_id)
2021-11-29 21:22:46 +00:00
for role in role_list:
PermissionsServers.add_role_server(
new_server_id,
role.role_id,
PermissionsServers.get_permissions_mask(
int(role.role_id), int(old_server_id)
),
)
# Permissions_Servers.add_role_server(
# new_server_id, role.role_id, "00001000"
# )
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Servers Permissions Methods
# **********************************************************************************
2021-09-08 22:01:10 +00:00
@staticmethod
def get_permissions_mask(role_id, server_id):
return PermissionsServers.get_permissions_mask(role_id, server_id)
2021-09-28 21:48:54 +00:00
2021-09-08 22:01:10 +00:00
@staticmethod
def set_permission(
permission_mask, permission_tested: EnumPermissionsServer, value
):
return PermissionsServers.set_permission(
permission_mask, permission_tested, value
)
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):
return PermissionsServers.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):
key = HelperUsers.get_user_api_key(key_id)
return PermissionsServers.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):
return PermissionsServers.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):
user_roles = HelperUsers.get_user_roles_id(user_id)
2021-09-08 22:01:10 +00:00
roles_list = []
role_server = []
authorized_servers = []
server_data = []
for user in user_roles:
roles_list.append(HelperRoles.get_role(user.role_id))
2021-09-08 22:01:10 +00:00
for role in roles_list:
role_test = PermissionsServers.get_role_servers_from_role_id(
role.get("role_id")
)
for test in role_test:
role_server.append(test)
2021-09-08 22:01:10 +00:00
for server in role_server:
authorized_servers.append(
HelperServers.get_server_data_by_id(server.server_id)
)
2021-09-08 22:01:10 +00:00
for server in authorized_servers:
2022-05-26 12:50:20 +00:00
srv: Server = ServersController().get_server_instance_by_id(
server.get("server_id")
)
latest = srv.stats_helper.get_latest_server_stats()
server_data.append(
{
"server_data": server,
2022-05-26 13:43:24 +00:00
"stats": latest,
}
)
2021-09-08 22:01:10 +00:00
return server_data