Bug fixes for user/role based servers.

This commit is contained in:
Andrew 2021-08-06 12:21:47 -04:00
parent e827460a18
commit e40fb45853
2 changed files with 24 additions and 7 deletions

View File

@ -371,7 +371,7 @@ class db_shortcuts:
server_data.append(db_helper.get_server_data_by_id(u.server_id))
return server_data
@staticmethod
def get_authorized_servers_from_roles(user_id):
user_roles = User_Roles.select().where(User_Roles.user_id == user_id)
@ -423,7 +423,9 @@ class db_shortcuts:
role_server.append(t)
for s in role_server:
authorized_servers.append(db_helper.get_server_data_by_id(s.server_id))
for item in user_servers:
if item.server_id != s.server_id:
authorized_servers.append(db_helper.get_server_data_by_id(s.server_id))
for s in authorized_servers:
latest = Server_Stats.select().where(Server_Stats.server_id == s.get('server_id')).order_by(
@ -568,6 +570,20 @@ class db_shortcuts:
return user
@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)
print(query)
return query
@staticmethod
def get_user(user_id):
if user_id == 0:

View File

@ -254,8 +254,12 @@ class PanelHandler(BaseHandler):
self.redirect("/panel/server_detail?id={}&subpage=backup".format(server_id))
elif page == 'panel_config':
page_data['users'] = db_helper.get_all_users()
page_data['roles'] = db_helper.get_all_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 = "********"
@ -286,11 +290,8 @@ class PanelHandler(BaseHandler):
elif page == "edit_user":
user_id = self.get_argument('id', None)
role_servers = db_helper.get_authorized_servers_stats_from_roles(user_id)
user_servers = db_helper.get_authorized_servers(user_id)
servers = set()
for server in role_servers:
servers.add(server['server_id'])
for server in user_servers:
servers.add(server['server_id'])
page_data['new_user'] = False