From a50fe9a94676e06dea0de0873cfe6945420c37c5 Mon Sep 17 00:00:00 2001 From: Pavel Loginov Date: Wed, 11 Aug 2021 21:27:49 +0600 Subject: [PATCH] v5.2.3.0 Changelog: https://haproxy-wi.org/changelog.py#5_2_3 --- app/db_model.py | 178 +++++++++++++++--------------- app/roxy-wi.cfg | 2 +- app/sql.py | 8 +- config_other/requirements_el7.txt | 2 +- config_other/requirements_el8.txt | 2 +- requirements.txt | 2 +- 6 files changed, 97 insertions(+), 97 deletions(-) diff --git a/app/db_model.py b/app/db_model.py index ca0cf2d3..e7764865 100644 --- a/app/db_model.py +++ b/app/db_model.py @@ -5,12 +5,12 @@ from funct import get_config_var mysql_enable = get_config_var('mysql', 'enable') if mysql_enable == '1': - mysql_user = funct.get_config_var('mysql', 'mysql_user') - mysql_password = funct.get_config_var('mysql', 'mysql_password') - mysql_db = funct.get_config_var('mysql', 'mysql_db') - mysql_host = funct.get_config_var('mysql', 'mysql_host') - mysql_port = funct.get_config_var('mysql', 'mysql_port') - conn = MySQLDatabase(mysql_db, user=mysql_user, password=mysql_password, host=mysql_host, port=mysql_port) + mysql_user = get_config_var('mysql', 'mysql_user') + mysql_password = get_config_var('mysql', 'mysql_password') + mysql_db = get_config_var('mysql', 'mysql_db') + mysql_host = get_config_var('mysql', 'mysql_host') + mysql_port = get_config_var('mysql', 'mysql_port') + conn = MySQLDatabase(mysql_db, user=mysql_user, password=mysql_password, host=mysql_host, port=int(mysql_port)) else: db = "/var/www/haproxy-wi/app/roxy-wi.db" conn = SqliteDatabase(db) @@ -23,11 +23,11 @@ class BaseModel(Model): class User(BaseModel): user_id = AutoField(column_name='id') - username = TextField(constraints=[SQL('UNIQUE')]) - email = TextField(constraints=[SQL('UNIQUE')]) - password = TextField(null=True) - role = TextField() - groups = TextField() + username = CharField(constraints=[SQL('UNIQUE')]) + email = CharField(constraints=[SQL('UNIQUE')]) + password = CharField(null=True) + role = CharField() + groups = CharField() ldap_user = IntegerField(default=0) activeuser = IntegerField(default=1) @@ -37,9 +37,9 @@ class User(BaseModel): class Server(BaseModel): server_id = AutoField(column_name='id') - hostname = TextField() - ip = TextField() - groups = TextField() + hostname = CharField() + ip = CharField() + groups = CharField() type_ip = IntegerField(default=0) enable = IntegerField(default=1) master = IntegerField(default=0) @@ -47,7 +47,7 @@ class Server(BaseModel): alert = IntegerField(default=0) metrics = IntegerField(default=0) port = IntegerField(default=22) - desc = TextField(null=True) + desc = CharField(null=True) active = IntegerField(default=0) keepalived = IntegerField(default=0) nginx = IntegerField(default=0) @@ -64,8 +64,8 @@ class Server(BaseModel): class Role(BaseModel): role_id = AutoField(column_name='id') - name = TextField(constraints=[SQL('UNIQUE')]) - description = DateTimeField() + name = CharField(constraints=[SQL('UNIQUE')]) + description = CharField() class Meta: table_name = 'role' @@ -73,8 +73,8 @@ class Role(BaseModel): class Telegram(BaseModel): id = AutoField() - token = TextField() - chanel_name = TextField() + token = CharField() + chanel_name = CharField() groups = IntegerField() class Meta: @@ -83,8 +83,8 @@ class Telegram(BaseModel): class Slack(BaseModel): id = AutoField() - token = TextField() - chanel_name = TextField() + token = CharField() + chanel_name = CharField() groups = IntegerField() class Meta: @@ -93,7 +93,7 @@ class Slack(BaseModel): class UUID(BaseModel): user_id = IntegerField() - uuid = TextField() + uuid = CharField() exp = DateTimeField(default=datetime.now) class Meta: @@ -103,7 +103,7 @@ class UUID(BaseModel): class Token(BaseModel): user_id = IntegerField() - token = TextField() + token = CharField() exp = DateTimeField(default=datetime.now) class Meta: @@ -112,8 +112,8 @@ class Token(BaseModel): class ApiToken(BaseModel): - token = TextField() - user_name = TextField() + token = CharField() + user_name = CharField() user_group_id = IntegerField() user_role = IntegerField() create_date = DateTimeField(default=datetime.now) @@ -125,10 +125,10 @@ class ApiToken(BaseModel): class Setting(BaseModel): - param = TextField() - value = TextField(null=True) - section = TextField() - desc = TextField() + param = CharField() + value = CharField(null=True) + section = CharField() + desc = CharField() group = IntegerField(null=True, constraints=[SQL('DEFAULT 1')]) class Meta: @@ -139,8 +139,8 @@ class Setting(BaseModel): class Groups(BaseModel): group_id = AutoField(column_name='id') - name = TextField(constraints=[SQL('UNIQUE')]) - description = TextField(null=True) + name = CharField(constraints=[SQL('UNIQUE')]) + description = CharField(null=True) class Meta: table_name = 'groups' @@ -158,10 +158,10 @@ class UserGroups(BaseModel): class Cred(BaseModel): id = AutoField() - name = TextField() + name = CharField() enable = IntegerField(constraints=[SQL('DEFAULT 1')]) - username = TextField() - password = TextField(null=True) + username = CharField() + password = CharField(null=True) groups = IntegerField(constraints=[SQL('DEFAULT 1')]) class Meta: @@ -171,20 +171,20 @@ class Cred(BaseModel): class Backup(BaseModel): id = AutoField() - server = TextField() - rhost = TextField() - rpath = TextField() - backup_type = TextField(column_name='type') - time = TextField() + server = CharField() + rhost = CharField() + rpath = CharField() + backup_type = CharField(column_name='type') + time = CharField() cred = IntegerField() - description = TextField(null=True) + description = CharField(null=True) class Meta: table_name = 'backups' class Metrics(BaseModel): - serv = TextField() + serv = CharField() curr_con = IntegerField() cur_ssl_con = IntegerField() sess_rate = IntegerField() @@ -197,7 +197,7 @@ class Metrics(BaseModel): class WafMetrics(BaseModel): - serv = TextField() + serv = CharField() conn = IntegerField() date = DateTimeField(default=datetime.now) @@ -207,7 +207,7 @@ class WafMetrics(BaseModel): class Version(BaseModel): - version = TextField() + version = CharField() class Meta: table_name = 'version' @@ -216,8 +216,8 @@ class Version(BaseModel): class Option(BaseModel): id = AutoField() - options = TextField() - groups = TextField() + options = CharField() + groups = CharField() class Meta: table_name = 'options' @@ -225,9 +225,9 @@ class Option(BaseModel): class SavedServer(BaseModel): id = AutoField() - server = TextField() - description = TextField(null=True) - groups = TextField() + server = CharField() + description = CharField(null=True) + groups = CharField() class Meta: table_name = 'saved_servers' @@ -245,10 +245,10 @@ class Waf(BaseModel): class WafRules(BaseModel): id = AutoField() - serv = TextField() - rule_name = TextField() - rule_file = TextField() - desc = TextField(null=True) + serv = CharField() + rule_name = CharField() + rule_file = CharField() + desc = CharField(null=True) en = IntegerField(constraints=[SQL('DEFAULT 1')]) class Meta: @@ -270,10 +270,10 @@ class PortScannerSettings(BaseModel): class PortScannerPorts(BaseModel): - serv = TextField() + serv = CharField() user_group_id = IntegerField() port = IntegerField() - service_name = TextField() + service_name = CharField() date = DateTimeField(default=datetime.now) class Meta: @@ -282,10 +282,10 @@ class PortScannerPorts(BaseModel): class PortScannerHistory(BaseModel): - serv = TextField() + serv = CharField() port = IntegerField() - status = TextField() - service_name = TextField() + status = CharField() + service_name = CharField() date = DateTimeField(default=datetime.now) class Meta: @@ -295,11 +295,11 @@ class PortScannerHistory(BaseModel): class ProvidersCreds(BaseModel): id = AutoField() - name = TextField() - type = TextField() - group = TextField() - key = TextField() - secret = TextField(null=True) + name = CharField() + type = CharField() + group = CharField() + key = CharField() + secret = CharField(null=True) create_date = DateTimeField(default=datetime.now) edit_date = DateTimeField(default=datetime.now) @@ -309,38 +309,38 @@ class ProvidersCreds(BaseModel): class ProvisionedServers(BaseModel): id = AutoField() - region = TextField() - instance_type = TextField() + region = CharField() + instance_type = CharField() public_ip = IntegerField(null=True) floating_ip = IntegerField(null=True) volume_size = IntegerField(null=True) backup = IntegerField(null=True) monitoring = IntegerField(null=True) private_networking = IntegerField(null=True) - ssh_key_name = TextField(null=True) - ssh_ids = TextField(null=True) - name = TextField() - os = TextField() + ssh_key_name = CharField(null=True) + ssh_ids = CharField(null=True) + name = CharField() + os = CharField() firewall = IntegerField() provider_id = IntegerField() - type = TextField() - status = TextField() + type = CharField() + status = CharField() group_id = IntegerField() date = DateTimeField(default=datetime.now) - IP = TextField(null=True) - last_error = TextField(null=True) + IP = CharField(null=True) + last_error = CharField(null=True) delete_on_termination = IntegerField(null=True) - project = TextField(null=True) - network_name = TextField(null=True) - volume_type = TextField(null=True) - name_template = TextField(null=True) + project = CharField(null=True) + network_name = CharField(null=True) + volume_type = CharField(null=True) + name_template = CharField(null=True) class Meta: table_name = 'provisioned_servers' class MetricsHttpStatus(BaseModel): - serv = TextField() + serv = CharField() ok_ans = IntegerField(column_name='2xx') redir_ans = IntegerField(column_name='3xx') not_found_ans = IntegerField(column_name='4xx') @@ -358,14 +358,14 @@ class SMON(BaseModel): port = IntegerField(null=True) status = IntegerField(constraints=[SQL('DEFAULT 1')]) en = IntegerField(constraints=[SQL('DEFAULT 1')]) - desc = TextField(null=True) - response_time = TextField(null=True) + desc = CharField(null=True) + response_time = CharField(null=True) time_state = IntegerField(constraints=[SQL('DEFAULT 0')]) - group = TextField(null=True) - script = TextField(null=True) - http = TextField(null=True) + group = CharField(null=True) + script = CharField(null=True) + http = CharField(null=True) http_status = IntegerField(constraints=[SQL('DEFAULT 1')]) - body = TextField(null=True) + body = CharField(null=True) body_status = IntegerField(constraints=[SQL('DEFAULT 1')]) telegram_channel_id = IntegerField(null=True) user_group = IntegerField() @@ -376,12 +376,12 @@ class SMON(BaseModel): class Alerts(BaseModel): - message = TextField() - level = TextField() - ip = TextField() + message = CharField() + level = CharField() + ip = CharField() port = IntegerField() user_group = IntegerField(constraints=[SQL('DEFAULT 1')]) - service = TextField() + service = CharField() date = DateTimeField(default=datetime.now) class Meta: @@ -390,8 +390,8 @@ class Alerts(BaseModel): class GeoipCodes(BaseModel): - code = TextField() - name = TextField() + code = CharField() + name = CharField() class Meta: table_name = 'geoip_codes' diff --git a/app/roxy-wi.cfg b/app/roxy-wi.cfg index da22ec82..bae3dea5 100644 --- a/app/roxy-wi.cfg +++ b/app/roxy-wi.cfg @@ -13,7 +13,7 @@ nginx_save_configs_dir = ${main:fullpath}/configs/nginx_config/ #Enable MySQL DB. Default will be used Sqlite DB. Default disable enable = 0 mysql_user = haproxy-wi -mysql_password = haproxywi +mysql_password = haproxy-wi mysql_db = haproxywi mysql_host = 127.0.0.1 mysql_port = 3306 diff --git a/app/sql.py b/app/sql.py index 2c8e01bd..f564d509 100644 --- a/app/sql.py +++ b/app/sql.py @@ -597,11 +597,11 @@ def get_user_id_by_uuid(uuid): def get_user_role_by_uuid(uuid): + query = (Role.select(Role.role_id) + .join(User, on=(Role.name == User.role)) + .join(UUID, on=(User.user_id == UUID.user_id)) + .where(UUID.uuid == uuid)) try: - query = (Role.select(Role.role_id) - .join(UUID, on=(User.user_id == UUID.user_id)) - .join(User, on=(Role.name == User.role)) - .where(UUID.uuid == uuid)) query_res = query.execute() except Exception as e: out_error(e) diff --git a/config_other/requirements_el7.txt b/config_other/requirements_el7.txt index f11bab70..6a9f1619 100644 --- a/config_other/requirements_el7.txt +++ b/config_other/requirements_el7.txt @@ -1,7 +1,7 @@ pyTelegramBotAPI==3.6.3 networkx==2.1 matplotlib==2.1.2 -mysql-connector-python==8.0.11 paramiko-ng>=2.5.0 slack-sdk>=3.4.0 peewee>=3.14.4 +PyMySQL>=1.0.2 diff --git a/config_other/requirements_el8.txt b/config_other/requirements_el8.txt index ed0300ef..fa9e1a76 100644 --- a/config_other/requirements_el8.txt +++ b/config_other/requirements_el8.txt @@ -2,7 +2,7 @@ configparser==3.5.0 pyTelegramBotAPI==3.6.3 networkx==2.1 matplotlib==2.1.2 -mysql-connector-python==8.0.11 paramiko-ng>=2.5.0 slack-sdk>=3.4.0 peewee>=3.14.4 +PyMySQL>=1.0.2 diff --git a/requirements.txt b/requirements.txt index 509516b5..a11a55b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ pyTelegramBotAPI>=3.6.3 networkx>=2.1 matplotlib>=2.1.2 future>=0.13.1 -mysql-connector-python>=8.0.11 jinja2>=2.10.1 slack-sdk>=3.4.0 peewee>=3.14.4 +PyMySQL>=1.0.2