mirror of https://github.com/Aidaho12/haproxy-wi
parent
897e3dd126
commit
f16e5f4af7
|
@ -424,8 +424,8 @@ def update_db_v_2_7(**kwargs):
|
|||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: groups' or e == "1060 (42S21): Duplicate column name 'groups' ":
|
||||
print('DB was updated. No more run')
|
||||
if e.args[0] == 'duplicate column name: alert' or e == "1060 (42S21): Duplicate column name 'groups' ":
|
||||
print('Updating... go to version 2.7.2')
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
|
@ -434,6 +434,30 @@ def update_db_v_2_7(**kwargs):
|
|||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def update_db_v_2_7_2(**kwargs):
|
||||
con, cur = get_cur()
|
||||
sql = """ 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
|
||||
);
|
||||
"""
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
if kwargs.get('silent') != 1:
|
||||
if e.args[0] == 'duplicate column name: telegram' or e == "1060 (42S21): Duplicate column name 'telegram' ":
|
||||
print("Update finished. No run more")
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def update_all():
|
||||
update_db_v_2_0_1()
|
||||
|
@ -447,6 +471,7 @@ def update_all():
|
|||
update_db_v_2_61()
|
||||
update_db_v_2_6_1()
|
||||
update_db_v_2_7()
|
||||
update_db_v_2_7_2()
|
||||
|
||||
def update_all_silent():
|
||||
update_db_v_2_0_1(silent=1)
|
||||
|
@ -460,4 +485,5 @@ def update_all_silent():
|
|||
update_db_v_2_61(silent=1)
|
||||
update_db_v_2_6_1(silent=1)
|
||||
update_db_v_2_7(silent=1)
|
||||
update_db_v_2_7_2(silent=1)
|
||||
|
14
app/funct.py
14
app/funct.py
|
@ -63,13 +63,19 @@ def logging(serv, action, **kwargs):
|
|||
print('<center><div class="alert alert-danger">Can\'t read write log. Please chech log_path in config</div></center>')
|
||||
pass
|
||||
|
||||
if get_config_var('telegram', 'enable') == "1": telegram_send_mess(mess)
|
||||
|
||||
def telegram_send_mess(mess):
|
||||
import telebot
|
||||
from telebot import apihelper
|
||||
token_bot = get_config_var('telegram', 'token')
|
||||
channel_name = get_config_var('telegram', 'channel_name')
|
||||
import sql
|
||||
|
||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
|
||||
user_id = cookie.get('uuid')
|
||||
telegrams = sql.get_user_telegram_by_uuid(user_id.value)
|
||||
|
||||
for telegram in telegrams:
|
||||
token_bot = telegram[1]
|
||||
channel_name = telegram[2]
|
||||
|
||||
proxy = get_config_var('main', 'proxy')
|
||||
|
||||
if proxy is not None:
|
||||
|
|
|
@ -29,7 +29,8 @@ output_from_parsed_template = template.render(title = "Servers manage",
|
|||
groups = sql.select_groups(),
|
||||
servers = sql.get_dick_permit(virt=1, disable=0),
|
||||
roles = sql.select_roles(),
|
||||
masters = sql.select_servers(get_master_servers=1),
|
||||
masters = sql.select_servers(get_master_servers=1, uuid=user_id.value),
|
||||
sshs = sql.select_ssh(),
|
||||
telegrams = sql.get_user_telegram_by_uuid(user_id.value),
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
135
app/sql.py
135
app/sql.py
|
@ -232,6 +232,13 @@ def select_servers(**kwargs):
|
|||
sql = """select * from servers ORDER BY groups """
|
||||
if kwargs.get("get_master_servers") is not None:
|
||||
sql = """select id,hostname from servers where master = 0 and type_ip = 0 and enable = 1 ORDER BY groups """
|
||||
if kwargs.get("get_master_servers") is not None and kwargs.get('uuid') is not None:
|
||||
sql = """
|
||||
select servers.id, servers.hostname from servers
|
||||
left join user as user on servers.groups = user.groups
|
||||
left join uuid as uuid on user.id = uuid.user_id
|
||||
where uuid.uuid = '%s' and servers.master = 0 and servers.type_ip = 0 and servers.enable = 1 ORDER BY servers.groups
|
||||
""" % kwargs.get('uuid')
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
|
@ -406,7 +413,19 @@ def get_user_role_by_uuid(uuid):
|
|||
return user_id[0]
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
def get_user_telegram_by_uuid(uuid):
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """ select telegram.* from telegram left join user as user on telegram.groups = user.groups left join uuid as uuid on user.id = uuid.user_id where uuid.uuid = '%s' """ % uuid
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
print("An error occurred:", e)
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def get_dick_permit(**kwargs):
|
||||
import http.cookies
|
||||
import os
|
||||
|
@ -482,7 +501,7 @@ def insert_new_ssh(name, enable, group, username, password):
|
|||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('<span class="alert alert-danger" id="error">An error occurred: %s <a title="Close" id="errorMess"><b>X</b></a></span>' % e)
|
||||
print('<span class="alert alert-danger" id="error">An error occurred: ' + e.args[0] + ' <a title="Close" id="errorMess"><b>X</b></a></span>')
|
||||
con.rollback()
|
||||
else:
|
||||
return True
|
||||
|
@ -531,6 +550,77 @@ def show_update_ssh(name, page):
|
|||
output_from_parsed_template = template.render(groups = select_groups(), sshs = select_ssh(name=name),page=page)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
def insert_new_telegram(token, chanel, group):
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """insert into telegram(`token`, `chanel_name`, `groups`) values ('%s', '%s', '%s') """ % (token, chanel, group)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('<span class="alert alert-danger" id="error">An error occurred: ' + e.args[0] + ' <a title="Close" id="errorMess"><b>X</b></a></span>')
|
||||
con.rollback()
|
||||
else:
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def delete_telegram(id):
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """ delete from telegram where id = %s """ % (id)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('<span class="alert alert-danger" id="error">An error occurred: ' + e.args[0] + ' <a title="Close" id="errorMess"><b>X</b></a></span>')
|
||||
con.rollback()
|
||||
else:
|
||||
return True
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def select_telegram(**kwargs):
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """select * from telegram """
|
||||
if kwargs.get('group'):
|
||||
sql = """select * from telegram where groups = '%s' """ % kwargs.get('group')
|
||||
if kwargs.get('token'):
|
||||
sql = """select * from telegram where token = '%s' """ % kwargs.get('token')
|
||||
try:
|
||||
cur.execute(sql)
|
||||
except sqltool.Error as e:
|
||||
print("An error occurred:", e.args[0])
|
||||
else:
|
||||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def update_telegram(token, chanel, group, id):
|
||||
con, cur = create_db.get_cur()
|
||||
sql = """
|
||||
update telegram set
|
||||
`token` = '%s',
|
||||
`chanel_name` = '%s',
|
||||
`groups` = '%s'
|
||||
where id = '%s' """ % (token, chanel, group, id)
|
||||
try:
|
||||
cur.execute(sql)
|
||||
con.commit()
|
||||
except sqltool.Error as e:
|
||||
print('<span class="alert alert-danger" id="error">An error occurred: ' + e.args[0] + ' <a title="Close" id="errorMess"><b>X</b></a></span>')
|
||||
con.rollback()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
def show_update_telegram(token, page):
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/ajax'))
|
||||
template = env.get_template('/new_telegram.html')
|
||||
|
||||
print('Content-type: text/html\n')
|
||||
|
||||
output_from_parsed_template = template.render(groups = select_groups(), telegrams = select_telegram(token=token),page=page)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
def show_update_user(user):
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/ajax'))
|
||||
|
@ -543,7 +633,7 @@ def show_update_user(user):
|
|||
roles = select_roles())
|
||||
print(output_from_parsed_template)
|
||||
|
||||
def show_update_server(server):
|
||||
def show_update_server(server, page):
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader('templates/ajax/'))
|
||||
template = env.get_template('/new_server.html')
|
||||
|
@ -554,7 +644,8 @@ def show_update_server(server):
|
|||
servers = select_servers(server=server),
|
||||
roles = select_roles(),
|
||||
masters = select_servers(get_master_servers=1),
|
||||
sshs = select_ssh())
|
||||
sshs = select_ssh(),
|
||||
page = page)
|
||||
print(output_from_parsed_template)
|
||||
|
||||
def show_update_group(group):
|
||||
|
@ -606,7 +697,7 @@ def select_alert(**kwargs):
|
|||
return cur.fetchall()
|
||||
cur.close()
|
||||
con.close()
|
||||
|
||||
|
||||
form = cgi.FieldStorage()
|
||||
error_mess = '<span class="alert alert-danger" id="error">All fields must be completed <a title="Close" id="errorMess"><b>X</b></a></span>'
|
||||
|
||||
|
@ -653,13 +744,15 @@ if form.getvalue('newserver') is not None:
|
|||
master = form.getvalue('slave')
|
||||
cred = form.getvalue('cred')
|
||||
alert = form.getvalue('alert_en')
|
||||
page = form.getvalue('page')
|
||||
page = page.split("#")[0]
|
||||
if ip is None or group is None or cred is None:
|
||||
print('Content-type: text/html\n')
|
||||
print(error_mess)
|
||||
else:
|
||||
print('Content-type: text/html\n')
|
||||
if add_server(hostname, ip, group, typeip, enable, master, cred, alert):
|
||||
show_update_server(ip)
|
||||
show_update_server(ip, page)
|
||||
|
||||
if form.getvalue('serverdel') is not None:
|
||||
print('Content-type: text/html\n')
|
||||
|
@ -770,3 +863,33 @@ if form.getvalue('sshdel') is not None:
|
|||
pass
|
||||
if delete_ssh(form.getvalue('sshdel')):
|
||||
print("Ok")
|
||||
|
||||
if form.getvalue('newtelegram'):
|
||||
token = form.getvalue('newtelegram')
|
||||
chanel = form.getvalue('chanel')
|
||||
group = form.getvalue('telegramgroup')
|
||||
page = form.getvalue('page')
|
||||
page = page.split("#")[0]
|
||||
if token is None or chanel is None or group is None:
|
||||
print('Content-type: text/html\n')
|
||||
print(error_mess)
|
||||
else:
|
||||
if insert_new_telegram(token, chanel, group):
|
||||
show_update_telegram(token, page)
|
||||
|
||||
if form.getvalue('telegramdel') is not None:
|
||||
print('Content-type: text/html\n')
|
||||
if delete_telegram(form.getvalue('telegramdel')):
|
||||
print("Ok")
|
||||
|
||||
if form.getvalue('updatetoken') is not None:
|
||||
token = form.getvalue('updatetoken')
|
||||
chanel = form.getvalue('updategchanel')
|
||||
group = form.getvalue('updategroup')
|
||||
id = form.getvalue('id')
|
||||
if token is None or chanel is None or group is None:
|
||||
print('Content-type: text/html\n')
|
||||
print(error_mess)
|
||||
else:
|
||||
print('Content-type: text/html\n')
|
||||
update_telegram(token, chanel, group, id)
|
|
@ -11,6 +11,7 @@
|
|||
<li><a href="#servers">Servers</a></li>
|
||||
<li><a href="#roles">Roles</a></li>
|
||||
<li><a href="#ssh">SSH credentials</a></li>
|
||||
<li><a href="#checker">Checker</a></li>
|
||||
{% if user %}
|
||||
<a href=/app/login.py?logout=logout title="Logout, user name: {{ user }}" class="login"> Logout</a>
|
||||
{% else %}
|
||||
|
@ -163,7 +164,7 @@
|
|||
<td>Group</td>
|
||||
<td>Enable</td>
|
||||
<td><span title="Vitrual IP, something like VRRP">Virt(?)</span></td>
|
||||
<td><span title="Alert if backend change status">Alert(?)</span></td>
|
||||
<td><span title="Alert if backend change status. Before enable add Telgram chanel at Checker tab">Alert(?)</span></td>
|
||||
<td><span title="Actions with master config will automatically apply on slave">Slave for (?)</span></td>
|
||||
<td>Credentials</td>
|
||||
<td></td>
|
||||
|
@ -435,5 +436,75 @@
|
|||
</table>
|
||||
<div id="ajax-ssh"></div>
|
||||
</div>
|
||||
|
||||
<div id="checker">
|
||||
<table id="checker_table" class="overview">
|
||||
<tr class="overviewHead" style="width: 50%;">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
<span title="Token that gave you @father_bot">Token(?)</span>
|
||||
</td>
|
||||
<td>Chanel name</td>
|
||||
<td>Group</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for telegram in telegrams %}
|
||||
<tr id="telegram-table-{{telegram.0}}">
|
||||
<td class="first-collumn" style="padding-top: 20px;">
|
||||
<input type="text" id="telegram-token-{{telegram.0}}" class="form-control" value="{{telegram.1}}" style="margin-bottom: 23px;">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-{{telegram.0}}" class="form-control" value="{{telegram.2}}">
|
||||
</td>
|
||||
<td>
|
||||
<select id="telegramgroup-{{telegram.0}}" name="telegramgroup-{{telegram.0}}">
|
||||
<option disabled selected>Choose group</option>
|
||||
{% for group in groups %}
|
||||
{% if telegram.3|string() == group.0|string() %}
|
||||
<option value="{{ group.0 }}" selected>{{ group.1 }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteTelegram({{telegram.0}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="Add telegram channel" id="add-telegram-button">+ Add</span>
|
||||
<br /><br />
|
||||
<table class="overview" id="telegram-add-table" style="display: none;">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
<span title="Token that gave you @father_bot">Token(?)</span>
|
||||
</td>
|
||||
<td>Chanel name</td>
|
||||
<td>Group</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" name="telegram-token-add" id="telegram-token-add" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-add" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<select id="new-telegram-group-add" name="new-telegram-group-add">
|
||||
<option disabled selected value="0">Choose group</option>
|
||||
{% for group in groups %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<a class="add-admin" id="add-telegram" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="ajax-telegram"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,12 +1,16 @@
|
|||
{% for server in servers %}
|
||||
<tr id="server-{{server.0}}" class="newserver">
|
||||
<td class="padding10 first-collumn">
|
||||
<td class="padding10 first-collumn" style="padding-top: 20px;">
|
||||
<input type="text" id="hostname-{{server.0}}" value="{{server.1}}" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="ip-{{server.0}}" value="{{server.2}}" class="form-control">
|
||||
{% if page == "servers.py" %}
|
||||
<input type="hidden" id="servergroup-{{server.0}}" name="servergroup-{{server.0}}" value="{{ ssh_group.0 }}" >
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="servergroup-{{server.0}}" name="servergroup-{{server.0}}">
|
||||
<option disabled selected>Choose group</option>
|
||||
{% for group in groups %}
|
||||
|
@ -17,7 +21,7 @@
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
{% if server.5 == 1 %}
|
||||
<label for="enable-{{server.0}}"></label><input type="checkbox" id="enable-{{server.0}}" checked>
|
||||
|
@ -34,9 +38,9 @@
|
|||
</td>
|
||||
<td>
|
||||
{% if server.8 == 1 %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}" checked>
|
||||
<label for="alert-{{server.0}}"></label><input type="checkbox" id="alert-{{server.0}}" checked>
|
||||
{% else %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}">
|
||||
<label for="alert-{{server.0}}"></label><input type="checkbox" id="alert-{{server.0}}">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
{% for telegram in telegrams %}
|
||||
<tr style="width: 50%;" id="telegram-table-{{telegram.0}}" class="newgroup">
|
||||
<td class="first-collumn" style="padding-top: 15px;">
|
||||
<input type="text" id="telegram-token-{{telegram.0}}" class="form-control" value="{{telegram.1}}" style="margin-bottom: 23px;">
|
||||
<input type="hidden" id="telegramgroup-{{telegram.0}}" name="telegramgroup-{{telegram.0}}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-{{telegram.0}}" class="form-control" value="{{telegram.2}}">
|
||||
</td>
|
||||
{% if page != "servers.py" %}
|
||||
<td>
|
||||
<select id="sshgroup-{{telegram.0}}" name="sshgroup-{{telegram.0}}">
|
||||
{% for group in groups %}
|
||||
{% if telegram.3 == group.0 %}
|
||||
<option value="{{ group.0 }}" selected>{{ group.1 }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteTelegram({{telegram.0}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
|
@ -96,7 +96,7 @@
|
|||
</ul>
|
||||
</nav>
|
||||
<div class="copyright-menu">
|
||||
HAproxy-WI v2.7.1
|
||||
HAproxy-WI v2.7.2
|
||||
<br>
|
||||
<a href="https://www.patreon.com/haproxy_wi" title="Donate" target="_blank" style="color: #fff; margin-left: 30px; color: red;" class="patreon"> Patreon</a>
|
||||
</div>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
<ul>
|
||||
<li><a href="#servers">Servers</a></li>
|
||||
<li><a href="#ssh">SSH credentials</a></li>
|
||||
<li><a href="#checker">Checker</a></li>
|
||||
{% if user %}
|
||||
<a href=/app/login.py?logout=logout title="Logout, user name: {{ user }}" class="login"> Logout</a>
|
||||
{% else %}
|
||||
|
@ -22,7 +23,7 @@
|
|||
<td>IP</td>
|
||||
<td>Enable</td>
|
||||
<td><span title="Vitrual IP, something like VRRP">Virt(?)</span></td>
|
||||
<td><span title="Alert if backend change status">Alert(?)</span></td>
|
||||
<td><span title="Alert if backend change status. Before enable add Telgram chanel at Checker tab">Alert(?)</span></td>
|
||||
<td><span title="Actions with master config will automatically apply on slave">Slave for (?)</span></td>
|
||||
<td>Credentials</td>
|
||||
<td></td>
|
||||
|
@ -36,8 +37,8 @@
|
|||
</td>
|
||||
<td>
|
||||
<input type="text" id="ip-{{server.0}}" value="{{server.2}}" class="form-control">
|
||||
<input type="hidden" id="servergroup-{{server.0}}" name="servergroup-{{server.0}}" value="{{ ssh_group.0 }}" >
|
||||
|
||||
<input type="hidden" id="new-server-group-add" name="servergroup-{{server.0}}" value="{{ ssh_group.0 }}" >
|
||||
<input type="hidden" id="servergroup-{{server.0}}" name="servergroup-{{server.0}}" value="{{ ssh_group.0 }}" >
|
||||
</td>
|
||||
<td>
|
||||
{% if server.5 == 1 %}
|
||||
|
@ -62,7 +63,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<select id="slavefor-{{server.0}}">
|
||||
<option disabled selected>Not slave</option>
|
||||
<option selected value="0">Not slave</option>
|
||||
{% for master in masters %}
|
||||
{% if master.0 == server.6 %}
|
||||
<option value="{{master.0}}" selected>{{master.1}}</option>
|
||||
|
@ -124,7 +125,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<select id="slavefor">
|
||||
<option disabled selected value="0">Not slave</option>
|
||||
<option selected value="0">Not slave</option>
|
||||
{% for master in masters %}
|
||||
<option value="{{master.0}}">{{master.1}}</option>
|
||||
{% endfor %}
|
||||
|
@ -250,5 +251,60 @@
|
|||
</table>
|
||||
<div id="ajax-ssh"></div>
|
||||
</div>
|
||||
|
||||
<div id="checker">
|
||||
<table id="checker_table" class="overview">
|
||||
<tr class="overviewHead" style="width: 50%;">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
<span title="Token that gave you @father_bot">Token(?)</span>
|
||||
</td>
|
||||
<td>Chanel name</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for telegram in telegrams %}
|
||||
{% if telegram.3|string() == ssh_group.0 %}
|
||||
<tr style="width: 50%;" id="telegram-table-{{telegram.0}}">
|
||||
<td class="first-collumn" style="padding-top: 20px;">
|
||||
<input type="text" id="telegram-token-{{telegram.0}}" class="form-control" value="{{telegram.1}}" style="margin-bottom: 23px;">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-{{telegram.0}}" class="form-control" value="{{telegram.2}}">
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="confirmDeleteSsh({{telegram.0}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br /><span class="add-button" title="Telegram channel" id="add-telegram-button">+ Add</span>
|
||||
<br /><br />
|
||||
<table class="overview" id="telegram-add-table" style="display: none;">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn" style="width: 25%;">
|
||||
<span title="Token that gave you @father_bot">Token(?)</span>
|
||||
</td>
|
||||
<td>
|
||||
Chanel name
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" name="telegram-token-add" id="telegram-token-add" class="form-control">
|
||||
{% for group in ssh_group %}
|
||||
<input type="hidden" id="new-telegram-group-add" name="new-telegram-group-add" value="{{ group.0 }}" >
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="telegram-chanel-add" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<a class="add-admin" id="add-telegram" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="ajax-telegram"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -31,5 +31,6 @@ output_from_parsed_template = template.render(title = "Admin area: users manage"
|
|||
roles = sql.select_roles(),
|
||||
masters = sql.select_servers(get_master_servers=1),
|
||||
sshs = sql.select_ssh(),
|
||||
telegrams = sql.select_telegram(),
|
||||
token = token)
|
||||
print(output_from_parsed_template)
|
||||
|
|
110
inc/users.js
110
inc/users.js
|
@ -200,7 +200,8 @@ $( function() {
|
|||
enable: enable,
|
||||
slave: $('#slavefor' ).val(),
|
||||
cred: $('#credentials').val(),
|
||||
alert_en: alert_en
|
||||
alert_en: alert_en,
|
||||
page: cur_url[0]
|
||||
},
|
||||
type: "GET",
|
||||
success: function( data ) {
|
||||
|
@ -254,7 +255,31 @@ $( function() {
|
|||
}
|
||||
} );
|
||||
});
|
||||
|
||||
$('#add-telegram').click(function() {
|
||||
$('#error').remove();
|
||||
$('.alert-danger').remove();
|
||||
$.ajax( {
|
||||
url: "sql.py",
|
||||
data: {
|
||||
newtelegram: $('#telegram-token-add').val(),
|
||||
chanel: $('#telegram-chanel-add').val(),
|
||||
telegramgroup: $('#new-telegram-group-add').val(),
|
||||
page: cur_url[0]
|
||||
},
|
||||
type: "GET",
|
||||
success: function( data ) {
|
||||
if (data.indexOf('error') != '-1') {
|
||||
$("#ajax-telegram").append(data);
|
||||
$.getScript(users);
|
||||
} else {
|
||||
$("#checker_table").append(data);
|
||||
$( ".newgroup" ).addClass( "update", 1000, callbackGroup );
|
||||
$.getScript(awesome);
|
||||
$.getScript(url);
|
||||
}
|
||||
}
|
||||
} );
|
||||
});
|
||||
function callbackUser() {
|
||||
setTimeout(function() {
|
||||
$( ".newuser" ).removeClass( "update" );
|
||||
|
@ -291,7 +316,11 @@ $( function() {
|
|||
$('#ssh-add-table').show("blind", "fast");
|
||||
}
|
||||
});
|
||||
|
||||
$('#add-telegram-button').click(function() {
|
||||
if ($('#telegram-add-table').css('display', 'none')) {
|
||||
$('#telegram-add-table').show("blind", "fast");
|
||||
}
|
||||
});
|
||||
$( "#ajax-users input" ).change(function() {
|
||||
var id = $(this).attr('id').split('-');
|
||||
updateUser(id[1])
|
||||
|
@ -334,7 +363,14 @@ $( function() {
|
|||
} else {
|
||||
$('#ssh_pass').css('display', 'block');
|
||||
}
|
||||
|
||||
$( "#checker_table input" ).change(function() {
|
||||
var id = $(this).attr('id').split('-');
|
||||
updateTelegram(id[2])
|
||||
});
|
||||
$( "#checker_table select" ).on('selectmenuchange',function() {
|
||||
var id = $(this).attr('id').split('-');
|
||||
updateTelegram(id[1])
|
||||
});
|
||||
} );
|
||||
function sshKeyEnableShow(id) {
|
||||
$('#ssh_enable-'+id).click(function() {
|
||||
|
@ -423,6 +459,24 @@ function confirmDeleteSsh(id) {
|
|||
}
|
||||
});
|
||||
}
|
||||
function confirmDeleteTelegram(id) {
|
||||
$( "#dialog-confirm" ).dialog({
|
||||
resizable: false,
|
||||
height: "auto",
|
||||
width: 400,
|
||||
modal: true,
|
||||
title: "Are you sure you want to delete " +$('#telegram-chanel-'+id).val() + "?",
|
||||
buttons: {
|
||||
"Delete": function() {
|
||||
$( this ).dialog( "close" );
|
||||
removeTelegram(id);
|
||||
},
|
||||
Cancel: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function removeUser(id) {
|
||||
$("#user-"+id).css("background-color", "#f2dede");
|
||||
$.ajax( {
|
||||
|
@ -491,6 +545,22 @@ function removeSsh(id) {
|
|||
}
|
||||
} );
|
||||
}
|
||||
function removeTelegram(id) {
|
||||
$("#telegram-table-"+id).css("background-color", "#f2dede");
|
||||
$.ajax( {
|
||||
url: "sql.py",
|
||||
data: {
|
||||
telegramdel: id,
|
||||
},
|
||||
type: "GET",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if(data == "Ok ") {
|
||||
$("#telegram-table-"+id).remove();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function updateUser(id) {
|
||||
$('.alert-danger').remove();
|
||||
$.ajax( {
|
||||
|
@ -560,12 +630,16 @@ function updateServer(id) {
|
|||
if ($('#alert-'+id).is(':checked')) {
|
||||
alert_en = '1';
|
||||
}
|
||||
var servergroup = $('#servergroup-'+id+' option:selected' ).val();
|
||||
if (cur_url[0] == "servers.py") {
|
||||
servergroup = $('#servergroup-'+id).val();
|
||||
}
|
||||
$.ajax( {
|
||||
url: "sql.py",
|
||||
data: {
|
||||
updateserver: $('#hostname-'+id).val(),
|
||||
ip: $('#ip-'+id).val(),
|
||||
servergroup: $('#servergroup-'+id+' option:selected' ).val(),
|
||||
servergroup: servergroup,
|
||||
typeip: typeip,
|
||||
enable: enable,
|
||||
slave: $('#slavefor-'+id+' option:selected' ).val(),
|
||||
|
@ -653,6 +727,32 @@ function updateSSH(id) {
|
|||
}
|
||||
} );
|
||||
}
|
||||
function updateTelegram(id) {
|
||||
$('#error').remove();
|
||||
$.ajax( {
|
||||
url: "sql.py",
|
||||
data: {
|
||||
updatetoken: $('#telegram-token-'+id).val(),
|
||||
updategchanel: $('#telegram-chanel-'+id).val(),
|
||||
updategroup: $('#telegramgroup-'+id).val(),
|
||||
id: id
|
||||
},
|
||||
type: "GET",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
if (data.indexOf('error') != '-1') {
|
||||
$("#ajax-ssh").append(data);
|
||||
$.getScript(users);
|
||||
} else {
|
||||
$('.alert-danger').remove();
|
||||
$("#telegram-table-"+id).addClass( "update", 1000 );
|
||||
setTimeout(function() {
|
||||
$( "#telegram-table-"+id ).removeClass( "update" );
|
||||
}, 2500 );
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
function showApacheLog(serv) {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
|
|
Loading…
Reference in New Issue