mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-11-27 14:59:02 +08:00
res/users.py
This commit is contained in:
parent
76d5a8b205
commit
9a194f0850
@ -129,6 +129,8 @@ def main():
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
while args.url.endswith("/"): args.url = args.url[:-1]
|
||||
|
||||
devices = view(
|
||||
args.url,
|
||||
args.token,
|
||||
|
123
res/users.py
Executable file
123
res/users.py
Executable file
@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import requests
|
||||
import argparse
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
||||
def view(
|
||||
url,
|
||||
token,
|
||||
name=None,
|
||||
group_name=None,
|
||||
):
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
pageSize = 30
|
||||
params = {
|
||||
"name": name,
|
||||
"group_name": group_name,
|
||||
}
|
||||
|
||||
params = {
|
||||
k: "%" + v + "%" if (v != "-" and "%" not in v) else v
|
||||
for k, v in params.items()
|
||||
if v is not None
|
||||
}
|
||||
params["pageSize"] = pageSize
|
||||
|
||||
users = []
|
||||
|
||||
current = 1
|
||||
|
||||
while True:
|
||||
params["current"] = current
|
||||
response = requests.get(f"{url}/api/users", headers=headers, params=params)
|
||||
response_json = response.json()
|
||||
|
||||
data = response_json.get("data", [])
|
||||
users.extend(data)
|
||||
|
||||
total = response_json.get("total", 0)
|
||||
current += pageSize
|
||||
if len(data) < pageSize or current > total:
|
||||
break
|
||||
|
||||
return users
|
||||
|
||||
|
||||
def check(response):
|
||||
if response.status_code == 200:
|
||||
try:
|
||||
response_json = response.json()
|
||||
return response_json
|
||||
except ValueError:
|
||||
return response.text or "Success"
|
||||
else:
|
||||
return "Failed", response.status_code, response.text
|
||||
|
||||
|
||||
def disable(url, token, guid, name):
|
||||
print("Disable", name)
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
response = requests.post(f"{url}/api/users/{guid}/disable", headers=headers)
|
||||
return check(response)
|
||||
|
||||
|
||||
def enable(url, token, guid, name):
|
||||
print("Enable", name)
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
response = requests.post(f"{url}/api/users/{guid}/enable", headers=headers)
|
||||
return check(response)
|
||||
|
||||
|
||||
def delete(url, token, guid, name):
|
||||
print("Delete", name)
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
response = requests.delete(f"{url}/api/users/{guid}", headers=headers)
|
||||
return check(response)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="User manager")
|
||||
parser.add_argument(
|
||||
"command",
|
||||
choices=["view", "disable", "enable", "delete"],
|
||||
help="Command to execute",
|
||||
)
|
||||
parser.add_argument("--url", required=True, help="URL of the API")
|
||||
parser.add_argument(
|
||||
"--token", required=True, help="Bearer token for authentication"
|
||||
)
|
||||
parser.add_argument("--name", help="User name")
|
||||
parser.add_argument("--group_name", help="Group name")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
while args.url.endswith("/"): args.url = args.url[:-1]
|
||||
|
||||
users = view(
|
||||
args.url,
|
||||
args.token,
|
||||
args.name,
|
||||
args.group_name,
|
||||
)
|
||||
|
||||
if args.command == "view":
|
||||
for user in users:
|
||||
print(user)
|
||||
elif args.command == "disable":
|
||||
for user in users:
|
||||
response = disable(args.url, args.token, user["guid"], user["name"])
|
||||
print(response)
|
||||
elif args.command == "enable":
|
||||
for user in users:
|
||||
response = enable(args.url, args.token, user["guid"], user["name"])
|
||||
print(response)
|
||||
elif args.command == "delete":
|
||||
for user in users:
|
||||
response = delete(args.url, args.token, user["guid"], user["name"])
|
||||
print(response)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -25,7 +25,7 @@ pub fn start_tray() {
|
||||
allow_err!(make_tray());
|
||||
}
|
||||
|
||||
pub fn make_tray() -> hbb_common::ResultType<()> {
|
||||
fn make_tray() -> hbb_common::ResultType<()> {
|
||||
// https://github.com/tauri-apps/tray-icon/blob/dev/examples/tao.rs
|
||||
use hbb_common::anyhow::Context;
|
||||
use tao::event_loop::{ControlFlow, EventLoopBuilder};
|
||||
|
Loading…
Reference in New Issue
Block a user