You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.4 KiB

import flet as ft
import requests
from requests.auth import HTTPBasicAuth
import csv
from globalState import AppState
import aiohttp
import asyncio
def administrators(page: ft.Page):
page.title = "Admins"
user = AppState.user
password = AppState.password
url = AppState.url
if url.endswith("/"):
url = url[:-1]
url = f"{url}:1443/api/admins"
response = requests.get(url, auth=HTTPBasicAuth(user, password), verify=False)
if response.status_code == 200:
data = response.json()
admins = data['_embedded']['ngcp:admins']
rows = []
try:
for admin in admins:
rows.append(
ft.DataRow(
cells=[
ft.DataCell(ft.Text(str(admin['id']))),
ft.DataCell(ft.Text(str(admin['reseller_id']))),
ft.DataCell(ft.Text(admin['login'])),
ft.DataCell(ft.Text(admin['role'])),
ft.DataCell(ft.Text(str(admin['is_master']))),
ft.DataCell(ft.Text(str(admin['is_active']))),
ft.DataCell(ft.Text(str(admin['read_only']))),
ft.DataCell(ft.Text(str(admin['show_passwords']))),
ft.DataCell(ft.Text(str(admin['can_reset_password'])))
]
)
)
table = ft.DataTable(
columns=[
ft.DataColumn(ft.Text("#")),
ft.DataColumn(ft.Text("Reseller")),
ft.DataColumn(ft.Text("Login")),
ft.DataColumn(ft.Text("Role")),
ft.DataColumn(ft.Text("Master")),
ft.DataColumn(ft.Text("Active")),
ft.DataColumn(ft.Text("ReadOnly")),
ft.DataColumn(ft.Text("Show Passwords")),
ft.DataColumn(ft.Text("Can Reset Password"))
],
rows=rows
)
except:
for admin in admins:
rows.append(
ft.DataRow(
cells=[
ft.DataCell(ft.Text(str(admin['id']))),
ft.DataCell(ft.Text(str(admin['reseller_id']))),
ft.DataCell(ft.Text(admin['login'])),
ft.DataCell(ft.Text(str(admin['is_master']))),
ft.DataCell(ft.Text(str(admin['is_active']))),
ft.DataCell(ft.Text(str(admin['read_only']))),
ft.DataCell(ft.Text(str(admin['show_passwords']))),
]
)
)
table = ft.DataTable(
columns=[
ft.DataColumn(ft.Text("#")),
ft.DataColumn(ft.Text("Reseller")),
ft.DataColumn(ft.Text("Login")),
ft.DataColumn(ft.Text("Master")),
ft.DataColumn(ft.Text("Active")),
ft.DataColumn(ft.Text("ReadOnly")),
ft.DataColumn(ft.Text("Show Passwords")),
],
rows=rows
)
page.add(table)
page.update()
else:
page.add(ft.Text(f"Error al obtener datos: {response.status_code}"))
page.update()