/
HookDev-Arch
/
ServerMonitor
Обзор
Документация
Войти
/
HookDev-Arch
/
ServerMonitor
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
Безопасность
master
add_user.py
99 строк
3 KB
HookDev-Arch
upload files
09 окт 2025, 02:25
09 окт 2025, 02:25
96b383c
Код
Авторство
О чём код?
"""Utility CLI for managing dashboard users.""" from __future__ import annotations import argparse import sys from core.auth_manager import auth_mgr def create_user(username: str, password: str, overwrite: bool = False) -> int: users = set(auth_mgr.list_users()) if username in users and not overwrite: print(f"User '{username}' already exists. Use --overwrite to replace it.") return 1 if username in users and overwrite: auth_mgr.delete_user(username) if auth_mgr.create_user(username, password): print(f"User '{username}' created.") return 0 print(f"Failed to create user '{username}'.") return 1 def reset_password(username: str, password: str) -> int: if username not in auth_mgr.list_users(): print(f"User '{username}' does not exist.") return 1 auth_mgr.delete_user(username) auth_mgr.create_user(username, password) print(f"Password reset for '{username}'.") return 0 def delete_user(username: str) -> int: if auth_mgr.delete_user(username): print(f"User '{username}' removed.") return 0 print(f"User '{username}' not found.") return 1 def list_users() -> int: users = auth_mgr.list_users() if not users: print("No users found.") return 0 print("Existing users:") for username in users: print(f" - {username}") return 0 def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description="Manage HookDev-Arch Dashboard users.") subparsers = parser.add_subparsers(dest="command", required=True) create = subparsers.add_parser("create", help="Create a new user") create.add_argument("--username", required=True) create.add_argument("--password", required=True) create.add_argument("--overwrite", action="store_true", help="Replace the user if it already exists") reset = subparsers.add_parser("reset-password", help="Reset an existing user's password") reset.add_argument("--username", required=True) reset.add_argument("--password", required=True) delete = subparsers.add_parser("delete", help="Remove a user") delete.add_argument("--username", required=True) subparsers.add_parser("list", help="List all users") return parser def main(argv: list[str] | None = None) -> int: parser = build_parser() args = parser.parse_args(argv) if args.command == "create": return create_user(args.username, args.password, args.overwrite) if args.command == "reset-password": return reset_password(args.username, args.password) if args.command == "delete": return delete_user(args.username) if args.command == "list": return list_users() parser.print_help() return 1 if __name__ == "__main__": sys.exit(main())