Commenting and Sorting some Code

This commit is contained in:
Silversthorn 2021-08-30 20:43:07 +02:00
parent 4210dfbe77
commit bbcde97684

View File

@ -242,7 +242,8 @@ class db_builder:
# Users.enabled: True,
# Users.superuser: True
#}).execute()
db_shortcuts.add_user(username, password=password, superuser=True)
user_id = db_shortcuts.add_user(username, password=password, superuser=True)
#db_shortcuts.update_user(user_id, user_crafty_data={"permissions_mask":"111", "server_quantity":[-1,-1,-1]} )
#console.info("API token is {}".format(api_token))
@ -257,6 +258,9 @@ class db_builder:
class db_shortcuts:
#************************************************************************************************
# Generic Databse Methods
#************************************************************************************************
@staticmethod
def return_rows(query):
rows = []
@ -271,6 +275,14 @@ class db_shortcuts:
return rows
@staticmethod
def return_db_rows(model):
data = [model_to_dict(row) for row in model]
return data
#************************************************************************************************
# Generic Servers Methods
#************************************************************************************************
@staticmethod
def create_server(name: str, server_uuid: str, server_dir: str, backup_path: str, server_command: str, server_file: str, server_log_file: str, server_stop: str, server_port=25565):
return Servers.insert({
@ -302,6 +314,9 @@ class db_shortcuts:
except IndexError:
return {}
#************************************************************************************************
# Servers Methods
#************************************************************************************************
@staticmethod
def get_all_defined_servers():
query = Servers.select()
@ -345,21 +360,14 @@ class db_shortcuts:
return server_data
@staticmethod
def get_user_roles_id(user_id):
roles_list = []
roles = User_Roles.select().where(User_Roles.user_id == user_id)
for r in roles:
roles_list.append(db_helper.get_role(r.role_id)['role_id'])
return roles_list
@staticmethod
def get_user_roles_names(user_id):
roles_list = []
roles = User_Roles.select().where(User_Roles.user_id == user_id)
for r in roles:
roles_list.append(db_helper.get_role(r.role_id)['role_name'])
return roles_list
def get_server_friendly_name(server_id):
server_data = db_helper.get_server_data_by_id(server_id)
friendly_name = "{} with ID: {}".format(server_data.get('server_name', None), server_data.get('server_id', 0))
return friendly_name
#************************************************************************************************
# Servers Permissions Methods
#************************************************************************************************
@staticmethod
def get_permissions_mask(role_id, server_id):
permissions_mask = ''
@ -414,6 +422,10 @@ class db_shortcuts:
server_data.append({'server_data': s, "stats": db_helper.return_rows(latest)[0]})
return server_data
#************************************************************************************************
# Servers_Stats Methods
#************************************************************************************************
@staticmethod
def get_server_stats_by_id(server_id):
stats = Server_Stats.select().where(Server_Stats.server_id == server_id).order_by(Server_Stats.created.desc()).limit(1)
@ -438,6 +450,18 @@ class db_shortcuts:
return False
return True
@staticmethod
def set_update(server_id, value):
try:
row = Server_Stats.select().where(Server_Stats.server_id == server_id)
except Exception as ex:
logger.error("Database entry not found. ".format(ex))
with database.atomic():
Server_Stats.update(updating=value).where(Server_Stats.server_id == server_id).execute()
#************************************************************************************************
# Crafty Permissions Methods
#************************************************************************************************
@staticmethod
def get_crafty_permissions_mask(user_id):
permissions_mask = ''
@ -470,6 +494,9 @@ class db_shortcuts:
}
return quantity_list
#************************************************************************************************
# User_Crafty Methods
#************************************************************************************************
@staticmethod
def get_User_Crafty(user_id):
try:
@ -488,6 +515,11 @@ class db_shortcuts:
user_crafty = db_helper.get_User_Crafty(user_id)
return user_crafty
@staticmethod
def add_user_crafty(user_id, uc_permissions):
user_crafty = User_Crafty.insert({User_Crafty.user_id: user_id, User_Crafty.permissions: uc_permissions}).execute()
return user_crafty
@staticmethod
def get_created_quantity_list(user_id):
user_crafty = db_helper.get_User_Crafty(user_id)
@ -519,6 +551,10 @@ class db_shortcuts:
User_Crafty.save(user_crafty)
return user_crafty.created_server
#************************************************************************************************
# Host_Stats Methods
#************************************************************************************************
@staticmethod
def get_latest_hosts_stats():
query = Host_Stats.select().order_by(Host_Stats.id.desc()).get()
@ -532,16 +568,15 @@ class db_shortcuts:
if len(test) == 0:
return token
#************************************************************************************************
# Users Methods
#************************************************************************************************
@staticmethod
def get_all_users():
query = Users.select()
return query
@staticmethod
def get_all_roles():
query = Roles.select()
return query
@staticmethod
def get_user_id_by_name(username):
if username == "SYSTEM":
@ -550,7 +585,7 @@ class db_shortcuts:
return (Users.get(Users.username == username)).user_id
except DoesNotExist:
return None
@staticmethod
def get_user_by_api_token(token: str):
query = Users.select().where(Users.api_token == token)
@ -562,57 +597,12 @@ class db_shortcuts:
return user
else:
return {}
@staticmethod
def add_role_to_user(user_id, role_id):
User_Roles.insert({
User_Roles.user_id: user_id,
User_Roles.role_id: role_id
}).execute()
@staticmethod
def add_user_roles(user):
if type(user) == dict:
user_id = user['user_id']
else:
user_id = user.user_id
# I just copied this code from get_user, it had those TODOs & comments made by mac - Lukas
roles_query = User_Roles.select().join(Roles, JOIN.INNER).where(User_Roles.user_id == user_id)
# TODO: this query needs to be narrower
roles = set()
for r in roles_query:
roles.add(r.role_id.role_id)
user['roles'] = roles
#logger.debug("user: ({}) {}".format(user_id, user))
return user
@staticmethod
def add_user_crafty(user_id, uc_permissions):
user_crafty = User_Crafty.insert({User_Crafty.user_id: user_id, User_Crafty.permissions: uc_permissions}).execute()
return user_crafty
@staticmethod
def add_role_server(server_id, role_id, rs_permissions="00000000"):
servers = Role_Servers.insert({Role_Servers.server_id: server_id, Role_Servers.role_id: role_id, Role_Servers.permissions: rs_permissions}).execute()
return servers
@staticmethod
def user_query(user_id):
user_query = Users.select().where(Users.user_id == user_id)
return user_query
@staticmethod
def user_role_query(user_id):
user_query = User_Roles.select().where(User_Roles.user_id == user_id)
query = Roles.select().where(Roles.role_id == -1)
for u in user_query:
query = Roles.select().where(Roles.role_id == u.role_id)
return query
@staticmethod
def get_user(user_id):
if user_id == 0:
@ -731,6 +721,14 @@ class db_shortcuts:
return False
return True
#************************************************************************************************
# Roles Methods
#************************************************************************************************
@staticmethod
def get_all_roles():
query = Roles.select()
return query
@staticmethod
def get_roleid_by_name(role_name):
try:
@ -805,18 +803,79 @@ class db_shortcuts:
if not db_shortcuts.get_role(role_id):
return False
return True
#************************************************************************************************
# User_Roles Methods
#************************************************************************************************
@staticmethod
def get_user_roles_id(user_id):
roles_list = []
roles = User_Roles.select().where(User_Roles.user_id == user_id)
for r in roles:
roles_list.append(db_helper.get_role(r.role_id)['role_id'])
return roles_list
@staticmethod
def get_user_roles_names(user_id):
roles_list = []
roles = User_Roles.select().where(User_Roles.user_id == user_id)
for r in roles:
roles_list.append(db_helper.get_role(r.role_id)['role_name'])
return roles_list
@staticmethod
def add_role_to_user(user_id, role_id):
User_Roles.insert({
User_Roles.user_id: user_id,
User_Roles.role_id: role_id
}).execute()
@staticmethod
def add_user_roles(user):
if type(user) == dict:
user_id = user['user_id']
else:
user_id = user.user_id
# I just copied this code from get_user, it had those TODOs & comments made by mac - Lukas
roles_query = User_Roles.select().join(Roles, JOIN.INNER).where(User_Roles.user_id == user_id)
# TODO: this query needs to be narrower
roles = set()
for r in roles_query:
roles.add(r.role_id.role_id)
user['roles'] = roles
#logger.debug("user: ({}) {}".format(user_id, user))
return user
#************************************************************************************************
# Role_Servers Methods
#************************************************************************************************
@staticmethod
def add_role_server(server_id, role_id, rs_permissions="00000000"):
servers = Role_Servers.insert({Role_Servers.server_id: server_id, Role_Servers.role_id: role_id, Role_Servers.permissions: rs_permissions}).execute()
return servers
@staticmethod
def user_role_query(user_id):
user_query = User_Roles.select().where(User_Roles.user_id == user_id)
query = Roles.select().where(Roles.role_id == -1)
for u in user_query:
query = Roles.select().where(Roles.role_id == u.role_id)
return query
#************************************************************************************************
# Commands Methods
#************************************************************************************************
@staticmethod
def get_unactioned_commands():
query = Commands.select().where(Commands.executed == 0)
return db_helper.return_rows(query)
@staticmethod
def get_server_friendly_name(server_id):
server_data = db_helper.get_server_data_by_id(server_id)
friendly_name = "{} with ID: {}".format(server_data.get('server_name', None), server_data.get('server_id', 0))
return friendly_name
@staticmethod
def send_command(user_id, server_id, remote_ip, command):
@ -833,16 +892,6 @@ class db_shortcuts:
Commands.command: command
}).execute()
@staticmethod
def get_actity_log():
q = Audit_Log.select()
return db_helper.return_db_rows(q)
@staticmethod
def return_db_rows(model):
data = [model_to_dict(row) for row in model]
return data
@staticmethod
def mark_command_complete(command_id=None):
if command_id is not None:
@ -850,6 +899,14 @@ class db_shortcuts:
Commands.update({
Commands.executed: True
}).where(Commands.command_id == command_id).execute()
#************************************************************************************************
# Audit_Log Methods
#************************************************************************************************
@staticmethod
def get_actity_log():
q = Audit_Log.select()
return db_helper.return_db_rows(q)
def add_to_audit_log(self, user_id, log_msg, server_id=None, source_ip=None):
logger.debug("Adding to audit log User:{} - Message: {} ".format(user_id, log_msg))
@ -877,6 +934,9 @@ class db_shortcuts:
Audit_Log.source_ip: source_ip
}).execute()
#************************************************************************************************
# Schedules Methods
#************************************************************************************************
@staticmethod
def create_scheduled_task(server_id, action, interval, interval_type, start_time, command, comment=None, enabled=True):
sch_id = Schedules.insert({
@ -916,6 +976,9 @@ class db_shortcuts:
def get_schedules_enabled():
return Schedules.select().where(Schedules.enabled == True).execute()
#************************************************************************************************
# Backups Methods
#************************************************************************************************
@staticmethod
def get_backup_config(server_id):
try:
@ -937,15 +1000,6 @@ class db_shortcuts:
}
return conf
@staticmethod
def set_update(server_id, value):
try:
row = Server_Stats.select().where(Server_Stats.server_id == server_id)
except Exception as ex:
logger.error("Database entry not found. ".format(ex))
with database.atomic():
Server_Stats.update(updating=value).where(Server_Stats.server_id == server_id).execute()
@staticmethod
def set_backup_config(server_id: int, backup_path: str = None, max_backups: int = None, auto_enabled: bool = True):
logger.debug("Updating server {} backup config with {}".format(server_id, locals()))
@ -992,6 +1046,10 @@ class db_shortcuts:
b = Backups.create(**conf)
logger.debug("Creating new backup record.")
#************************************************************************************************
# Servers Permissions Class
#************************************************************************************************
class Enum_Permissions_Server(Enum):
Commands = 0
Terminal = 1
@ -1037,6 +1095,9 @@ class Permissions_Servers:
def get_permission(permission_mask, permission_tested: Enum_Permissions_Server):
return permission_mask[permission_tested.value]
#************************************************************************************************
# Crafty Permissions Class
#************************************************************************************************
class Enum_Permissions_Crafty(Enum):
Server_Creation = 0
User_Config = 1
@ -1077,6 +1138,10 @@ class Permissions_Crafty:
def get_permission(permission_mask, permission_tested: Enum_Permissions_Crafty):
return permission_mask[permission_tested.value]
#************************************************************************************************
# Static Accessors
#************************************************************************************************
installer = db_builder()
db_helper = db_shortcuts()
server_permissions = Permissions_Servers()