mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Added server/role lists to panel config
This commit is contained in:
parent
e4db76e4b9
commit
debabfc045
@ -466,7 +466,15 @@ class db_shortcuts:
|
||||
server_data.append({'server_data': s, "stats": db_helper.return_rows(latest)[0]})
|
||||
return server_data
|
||||
|
||||
|
||||
@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 get_authorized_servers_stats_from_roles(user_id):
|
||||
user_roles = User_Roles.select().where(User_Roles.user_id == user_id)
|
||||
|
@ -7,6 +7,8 @@ import time
|
||||
import datetime
|
||||
import os
|
||||
|
||||
from tornado import iostream
|
||||
|
||||
from app.classes.shared.console import console
|
||||
from app.classes.shared.models import Users, installer
|
||||
from app.classes.web.base_handler import BaseHandler
|
||||
@ -254,12 +256,39 @@ class PanelHandler(BaseHandler):
|
||||
self.redirect("/panel/server_detail?id={}&subpage=backup".format(server_id))
|
||||
|
||||
elif page == 'panel_config':
|
||||
auth_servers = {}
|
||||
auth_role_servers = {}
|
||||
roles = db_helper.get_all_roles()
|
||||
role_servers = []
|
||||
user_roles = {}
|
||||
for user in db_helper.get_all_users():
|
||||
user_roles_list = db_helper.get_user_roles_names(user.user_id)
|
||||
user_servers = db_helper.get_all_authorized_servers(user.user_id)
|
||||
servers = []
|
||||
for server in user_servers:
|
||||
servers.append(server['server_name'])
|
||||
new_item = {user.user_id: servers}
|
||||
auth_servers.update(new_item)
|
||||
data = {user.user_id: user_roles_list}
|
||||
user_roles.update(data)
|
||||
for role in roles:
|
||||
role = db_helper.get_role(role.role_id)
|
||||
for serv_id in role['servers']:
|
||||
role_servers.append(db_helper.get_server_data_by_id(serv_id)['server_name'])
|
||||
data = {role['role_id']: role_servers}
|
||||
auth_role_servers.update(data)
|
||||
|
||||
page_data['auth-servers'] = auth_servers
|
||||
page_data['role-servers'] = auth_role_servers
|
||||
page_data['user-roles'] = user_roles
|
||||
|
||||
if exec_user['superuser'] == 1:
|
||||
page_data['users'] = db_helper.get_all_users()
|
||||
page_data['roles'] = db_helper.get_all_roles()
|
||||
else:
|
||||
page_data['users'] = db_helper.user_query(exec_user['user_id'])
|
||||
page_data['roles'] = db_helper.user_role_query(exec_user['user_id'])
|
||||
|
||||
for user in page_data['users']:
|
||||
if user.user_id != exec_user['user_id']:
|
||||
user.api_token = "********"
|
||||
@ -297,6 +326,7 @@ class PanelHandler(BaseHandler):
|
||||
page_data['new_user'] = False
|
||||
page_data['user'] = db_helper.get_user(user_id)
|
||||
page_data['servers'] = servers
|
||||
page_data['role-servers'] = db_helper.get_authorized_servers_from_roles(exec_user_id)
|
||||
page_data['roles_all'] = db_helper.get_all_roles()
|
||||
page_data['servers_all'] = self.controller.list_defined_servers()
|
||||
|
||||
|
@ -45,6 +45,7 @@
|
||||
<th>Enabled</th>
|
||||
<th>API Token</th>
|
||||
<th>Allowed Servers</th>
|
||||
<th>Assigned Roles</th>
|
||||
<th>Edit</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -66,7 +67,16 @@
|
||||
|
||||
</td>
|
||||
<td>{{ user.api_token }}</td>
|
||||
<td>{{ [] }}</td>
|
||||
<td class="server_list_{{user.user_id}}"><ul id="{{user.user_id}}">
|
||||
{% for item in data['auth-servers'][user.user_id] %}
|
||||
<li>{{item}}</li>
|
||||
{% end %}
|
||||
</ul></td>
|
||||
<td class="role_list_{{user.user_id}}"><ul>
|
||||
{% for item in data['user-roles'][user.user_id] %}
|
||||
<li>{{item}}</li>
|
||||
{% end %}
|
||||
|
||||
<td><a href="/panel/edit_user?id={{user.user_id}}"><i class="fas fa-pencil-alt"></i></a></td>
|
||||
</tr>
|
||||
{% end %}
|
||||
@ -102,7 +112,11 @@
|
||||
{% for role in data['roles'] %}
|
||||
<tr>
|
||||
<td>{{ role.role_name }}</td>
|
||||
<td>{{ [] }}</td>
|
||||
<td class="role_list_{{role.role_id}}"><ul id="{{role.role_id}}">
|
||||
{% for item in data['role-servers'][role.role_id] %}
|
||||
<li>{{item}}</li>
|
||||
{% end %}
|
||||
</ul></td>
|
||||
<td><a href="/panel/edit_role?id={{role.role_id}}"><i class="fas fa-pencil-alt"></i></a></td>
|
||||
</tr>
|
||||
{% end %}
|
||||
|
Loading…
Reference in New Issue
Block a user