Pavel Loginov 4 years ago
parent 2558528a40
commit f87ec83348

@ -180,8 +180,16 @@ elif form.getvalue('mode') is not None:
try:
if a == '1':
acl_if_word = 'hdr_beg(host) -i '
if form.getvalue('ssl') == "https" and form.getvalue('mode') != "tcp":
acl_if_word = 'ssl_fc_sni -i '
if form.getvalue('mode') == "tcp":
acl_if_word = 'req.ssl_sni -i '
elif a == '2':
acl_if_word = 'hdr_end(host) -i '
if form.getvalue('ssl') == "https" and form.getvalue('mode') != "tcp":
acl_if_word = 'ssl_fc_sni -i '
if form.getvalue('mode') == "tcp":
acl_if_word = 'req.ssl_sni -i '
elif a == '3':
acl_if_word = 'path_beg -i '
elif a == '4':

@ -52,11 +52,11 @@ def check_db():
def get_cur():
try:
if mysql_enable == '0':
con = sqltool.connect(db, isolation_level=None)
con = sqltool.connect(db, isolation_level=None)
else:
con = sqltool.connect(user=mysql_user, password=mysql_password,
host=mysql_host, port=mysql_port,
database=mysql_db)
database=mysql_db)
cur = con.cursor()
except sqltool.Error as e:
funct.logging('DB ', ' '+str(e), haproxywi=1, login=1)
@ -77,9 +77,9 @@ def create_table(**kwargs):
`groups` VARCHAR ( 120 ),
ldap_user INTEGER NOT NULL DEFAULT 0,
activeuser INTEGER NOT NULL DEFAULT 1,
PRIMARY KEY(`id`)
PRIMARY KEY(`id`)
);
INSERT INTO user (username, email, password, role, groups) VALUES
INSERT INTO user (username, email, password, role, groups) VALUES
('admin','admin@localhost','21232f297a57a5a743894a0e4a801fc3','admin','1'),
('editor','editor@localhost','5aee9dbd2a188839105073571bee1b1f','editor','1'),
('guest','guest@localhost','084e0343a0486ff05530df6c705c8bb4','guest','1');
@ -97,18 +97,18 @@ def create_table(**kwargs):
port INTEGER NOT NULL DEFAULT 22,
`desc` varchar(64),
active INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY(`id`)
PRIMARY KEY(`id`)
);
CREATE TABLE IF NOT EXISTS `role` (
`id` INTEGER NOT NULL,
`name` VARCHAR ( 80 ) UNIQUE,
`description` VARCHAR ( 255 ),
PRIMARY KEY(`id`)
PRIMARY KEY(`id`)
);
INSERT INTO `role` (name, description) VALUES ('admin','Can do everything'),
('editor','Can edit configs'),
('guest','Read only access');
CREATE TABLE IF NOT EXISTS `groups` (
`id` INTEGER NOT NULL,
`name` VARCHAR ( 80 ),
@ -127,16 +127,16 @@ def create_table(**kwargs):
);
CREATE TABLE IF NOT EXISTS `uuid` (`user_id` INTEGER NOT NULL, `uuid` varchar ( 64 ),`exp` timestamp default '0000-00-00 00:00:00');
CREATE TABLE IF NOT EXISTS `token` (`user_id` INTEGER, `token` varchar(64), `exp` timestamp default '0000-00-00 00:00:00');
CREATE TABLE IF NOT EXISTS `telegram` (`id` integer primary key autoincrement, `token` VARCHAR ( 64 ), `chanel_name` INTEGER NOT NULL DEFAULT 1, `groups` INTEGER NOT NULL DEFAULT 1);
CREATE TABLE IF NOT EXISTS `telegram` (`id` integer primary key autoincrement, `token` VARCHAR (64), `chanel_name` INTEGER NOT NULL DEFAULT 1, `groups` INTEGER NOT NULL DEFAULT 1);
CREATE TABLE IF NOT EXISTS `metrics` (`serv` varchar(64), curr_con INTEGER, cur_ssl_con INTEGER, sess_rate INTEGER, max_sess_rate INTEGER,`date` timestamp default '0000-00-00 00:00:00');
CREATE TABLE IF NOT EXISTS `settings` (`param` varchar(64), value varchar(64), section varchar(64), `desc` varchar(100), `group` INTEGER NOT NULL DEFAULT 1, UNIQUE(param, `group`));
CREATE TABLE IF NOT EXISTS `version` (`version` varchar(64));
CREATE TABLE IF NOT EXISTS `options` ( `id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `saved_servers` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `backups` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `options` (`id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `saved_servers` (`id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `backups` (`id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`));
CREATE TABLE IF NOT EXISTS `waf` (`server_id` INTEGER UNIQUE, metrics INTEGER);
CREATE TABLE IF NOT EXISTS `waf_metrics` (`serv` varchar(64), conn INTEGER, `date` DATETIME default '0000-00-00 00:00:00');
CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id));
CREATE TABLE IF NOT EXISTS `waf_metrics` (`serv` varchar(64), conn INTEGER, `date` DATETIME default '0000-00-00 00:00:00');
CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id));
"""
try:
cur.executescript(sql)
@ -150,7 +150,7 @@ def create_table(**kwargs):
else:
return True
else:
try:
try:
for line in open("haproxy-wi.db.sql"):
cur.execute(line)
except sqltool.Error as e:
@ -160,10 +160,10 @@ def create_table(**kwargs):
return False
else:
return True
cur.close()
cur.close()
con.close()
def update_db_v_31(**kwargs):
con, cur = get_cur()
sql = list()
@ -199,7 +199,7 @@ def update_db_v_31(**kwargs):
sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_class_search', 'user', 'ldap', 'Class to search user');")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_user_attribute', 'sAMAccountName', 'ldap', 'User\'s attribute for search');")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_search_field', 'mail', 'ldap', 'Field where user e-mail saved');")
for i in sql:
try:
cur.execute(i)
@ -210,14 +210,14 @@ def update_db_v_31(**kwargs):
if kwargs.get('silent') != 1:
print('Updating... go to version 3.2')
return True
cur.close()
cur.close()
con.close()
def update_db_v_3_4_5_2(**kwargs):
con, cur = get_cur()
sql = """CREATE TABLE IF NOT EXISTS `version` (`version` varchar(64)); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -229,29 +229,29 @@ def update_db_v_3_4_5_2(**kwargs):
return False
else:
return True
cur.close()
cur.close()
con.close()
def update_db_v_3_4_5_22(**kwargs):
con, cur = get_cur()
if mysql_enable == '0':
sql = """insert into version ('version') values ('3.4.5.2'); """
else:
sql = """INSERT INTO version VALUES ('3.4.5.2'); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
print('Cannot insert version %s' % e)
cur.close()
cur.close()
con.close()
def update_db_v_3_4_7(**kwargs):
con, cur = get_cur()
sql = """CREATE TABLE IF NOT EXISTS `options` ( `id` INTEGER NOT NULL, `options` VARCHAR ( 64 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -263,14 +263,14 @@ def update_db_v_3_4_7(**kwargs):
return False
else:
return True
cur.close()
cur.close()
con.close()
def update_db_v_3_5_3(**kwargs):
con, cur = get_cur()
sql = """CREATE TABLE IF NOT EXISTS `saved_servers` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `description` VARCHAR ( 120 ), `groups` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -282,16 +282,16 @@ def update_db_v_3_5_3(**kwargs):
return False
else:
return True
cur.close()
con.close()
cur.close()
con.close()
def update_db_v_3_8_1(**kwargs):
con, cur = get_cur()
sql = list()
sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_class_search', 'user', 'ldap', 'Class to search user');")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('ldap_user_attribute', 'sAMAccountName', 'ldap', 'User attribute for search');")
for i in sql:
try:
cur.execute(i)
@ -304,12 +304,12 @@ def update_db_v_3_8_1(**kwargs):
cur.close()
con.close()
def update_db_v_3_12(**kwargs):
con, cur = get_cur()
sql = """CREATE TABLE IF NOT EXISTS `backups` ( `id` INTEGER NOT NULL, `server` VARCHAR ( 64 ), `rhost` VARCHAR ( 120 ), `rpath` VARCHAR ( 120 ), `type` VARCHAR ( 120 ), `time` VARCHAR ( 120 ), cred INTEGER, `description` VARCHAR ( 120 ), PRIMARY KEY(`id`)); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -321,14 +321,14 @@ def update_db_v_3_12(**kwargs):
return False
else:
return True
cur.close()
con.close()
cur.close()
con.close()
def update_db_v_3_12_1(**kwargs):
con, cur = get_cur()
sql = """INSERT INTO settings (param, value, section, `desc`) values('ssl_local_path', 'certs', 'main', 'Path to dir for local save SSL certs. This is a relative path, begins with $HOME_HAPROXY-WI/app/'); """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -340,16 +340,16 @@ def update_db_v_3_12_1(**kwargs):
return False
else:
return True
cur.close()
cur.close()
con.close()
def update_db_v_3_13(**kwargs):
con, cur = get_cur()
sql = """
ALTER TABLE `servers` ADD COLUMN keepalived INTEGER NOT NULL DEFAULT 0;
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -363,8 +363,8 @@ def update_db_v_3_13(**kwargs):
cur.close()
con.close()
def update_db_v_4(**kwargs):
con, cur = get_cur()
sql = list()
@ -389,14 +389,14 @@ def update_db_v_4(**kwargs):
cur.close()
con.close()
def update_db_v_41(**kwargs):
con, cur = get_cur()
sql = """
ALTER TABLE `servers` ADD COLUMN nginx INTEGER NOT NULL DEFAULT 0;
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -410,14 +410,14 @@ def update_db_v_41(**kwargs):
cur.close()
con.close()
def update_db_v_42(**kwargs):
con, cur = get_cur()
sql = """
ALTER TABLE `servers` ADD COLUMN haproxy INTEGER NOT NULL DEFAULT 0;
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -432,13 +432,13 @@ def update_db_v_42(**kwargs):
cur.close()
con.close()
def update_db_v_4_3(**kwargs):
con, cur = get_cur()
sql = """
CREATE TABLE IF NOT EXISTS user_groups(user_id INTEGER NOT NULL, user_group_id INTEGER NOT NULL, UNIQUE(user_id,user_group_id));
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -448,10 +448,10 @@ def update_db_v_4_3(**kwargs):
else:
print("An error occurred:", e)
cur.close()
cur.close()
con.close()
def update_db_v_4_3_0(**kwargs):
con, cur = get_cur()
if mysql_enable == '1':
@ -462,7 +462,7 @@ def update_db_v_4_3_0(**kwargs):
sql = """
insert OR IGNORE into user_groups(user_id, user_group_id) select id, groups from user;
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -472,16 +472,16 @@ def update_db_v_4_3_0(**kwargs):
else:
print("An error occurred:", e)
cur.close()
cur.close()
con.close()
def update_db_v_4_3_1(**kwargs):
con, cur = get_cur()
sql = """
ALTER TABLE `servers` ADD COLUMN pos INTEGER NOT NULL DEFAULT 0;
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -495,14 +495,14 @@ def update_db_v_4_3_1(**kwargs):
cur.close()
con.close()
def update_db_v_4_3_2(**kwargs):
con, cur = get_cur()
sql = """
INSERT INTO settings (param, value, section, `desc`) values('ldap_type', '0', 'ldap', 'If 0 then will be used LDAP, if 1 then will be used LDAPS ');
"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -516,8 +516,8 @@ def update_db_v_4_3_2(**kwargs):
cur.close()
con.close()
def update_db_v_4_4(**kwargs):
con, cur = get_cur()
sql = """
@ -539,9 +539,9 @@ def update_db_v_4_4(**kwargs):
`telegram_channel_id` INTEGER,
`user_group` INTEGER,
UNIQUE(ip, port, http, body),
PRIMARY KEY(`id`)
PRIMARY KEY(`id`)
);"""
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
@ -551,7 +551,7 @@ def update_db_v_4_4(**kwargs):
else:
print("An error occurred:", e)
cur.close()
cur.close()
con.close()
@ -1046,19 +1046,38 @@ def update_db_v_4_5_8_2(**kwargs):
con.close()
def update_db_v_4_5_9(**kwargs):
con, cur = get_cur()
sql = list()
sql.append("INSERT INTO settings (param, value, section, `desc`) values('smon_check_interval', '1', 'monitoring', 'SMON check interval, in minutes')")
sql.append("INSERT INTO settings (param, value, section, `desc`) values('checker_check_interval', '1', 'monitoring', 'Checker check interval, in minutes')")
for i in sql:
try:
cur.execute(i)
con.commit()
except sqltool.Error as e:
pass
else:
if kwargs.get('silent') != 1:
print('Updating... DB has been updated to version 4.5.9')
cur.close()
con.close()
def update_ver(**kwargs):
con, cur = get_cur()
sql = """update version set version = '4.5.8.0'; """
try:
try:
cur.execute(sql)
con.commit()
except sqltool.Error as e:
print('Cannot update version')
cur.close()
cur.close()
con.close()
def update_all():
def update_all():
update_db_v_31()
update_db_v_3_4_5_2()
if funct.check_ver() is None:
@ -1087,9 +1106,10 @@ def update_all():
update_db_v_4_5_8()
update_db_v_4_5_8_1()
update_db_v_4_5_8_2()
update_db_v_4_5_9()
update_ver()
def update_all_silent():
update_db_v_31(silent=1)
update_db_v_3_4_5_2(silent=1)
@ -1119,9 +1139,10 @@ def update_all_silent():
update_db_v_4_5_8(silent=1)
update_db_v_4_5_8_1(silent=1)
update_db_v_4_5_8_2(silent=1)
update_db_v_4_5_9(silent=1)
update_ver()
if __name__ == "__main__":
create_table()
update_all()

@ -244,6 +244,18 @@
<a href="https://haproxy-wi.org/cabinet.py" class="footer-link" target="_blank" title="Private cabinet">Cabinet</a>
</div>
</div>
<div id="show-user-settings">
<table class="overview">
<tr>
<td class="padding20" style="width: 60%">Disable alerting for this tab</td>
<td><label for="disable_alert_for_tab"></label><input type="checkbox" id="disable_alert_for_tab" />
</tr>
<tr class="even">
<td class="padding20" style="width: 60%">Disable alerting for all tabs</td>
<td><label for="disable_alert_for_all"></label><input type="checkbox" id="disable_alert_for_all" />
</tr>
</table>
</div>
<div id="current-user-groups-dialog" style="display: none;">
<div id="current-user-groups-form"></div>
</div>

@ -8,11 +8,14 @@
<input type="{{ type }}" name="{{name}}" value="{{ value|e }}" id="{{ id }}" size="{{size}}" style="{{style}}" {{readonly}} {{required}} {{autofocus}} placeholder="{{placeholder}}" title="{{title}}" class="{{class}}" autocomplete="off" />
{%- endmacro %}
{%- macro checkbox(id, name='', checked='', title='', value='', desc='') -%}
{%- macro checkbox(id, name='', checked='', title='', value='', desc='', disabled='') -%}
{% if name == '' %}
{% set name = id %}
{% endif %}
<label for="{{id}}" title="{{title}}" class="{{id}}">{{desc}}</label><input name="{{name}}" type="checkbox" id="{{id}}" value="{{value|e}}" {{checked}} />
{% if disabled == 'true' %}
{% set disabled = 'disabled' %}
{% endif %}
<label for="{{id}}" title="{{title}}" class="{{id}}">{{desc}}</label><input name="{{name}}" type="checkbox" id="{{id}}" value="{{value|e}}" {{checked}} {{disabled}} />
{%- endmacro %}
{%- macro select(id, values, name='', required='', first='', class='', selected='', disabled='true') -%}

@ -1,5 +1,5 @@
{% if user %}
<span id="changeCurrentGroup" class="menu-bar login" title="Change current group" style="margin-top: 7px;margin-left: -10px;cursor: pointer;"></span>
<span id="show-user-settings-button" class="menu-bar login" title="User settings" style="margin-top: 7px;margin-left: -10px;cursor: pointer;"></span>
<a href=/app/login.py?logout=logout title="Logout, user name: {{ user }}" class="login"> Logout</a>
{% else %}
<a href=/app/login.py title="Login" class="login"> Login</a>

Loading…
Cancel
Save