Files
cli/secnex/app/user.py
2026-01-27 16:35:46 +01:00

55 lines
1.9 KiB
Python

import typer
from typing import Optional
from rich.console import Console
from rich.table import Table
from rich.prompt import Prompt
import os
import json
import uuid
import base64
import secnex.utils as utils
from secnex.kit.config.config import Config
from secnex.kit.clients.user import UserClient
console = Console()
user_app = typer.Typer()
@user_app.command(name="ls", help="List all users")
def ls():
"""List all users"""
config = Config("default")
user_client = UserClient(config)
users = user_client.get_all()
count_users = len(users)
console.print(f"Found {count_users} users")
if count_users == 0:
return
table = Table(title="Users")
table.add_column("ID", style="bold green")
table.add_column("First Name", style="bold yellow")
table.add_column("Last Name", style="bold purple")
table.add_column("Email", style="bold blue")
table.add_column("Tenant ID", style="bold red")
for u in users:
table.add_row(u.id, u.first_name, u.last_name, u.email, u.tenant_id)
console.print(table)
@user_app.command(name="tenant", help="Set the tenant for a user")
def set_tenant(id: Optional[str] = typer.Option(None, "--id", "-i", help="The ID of the user"), tenant: Optional[str] = typer.Option(None, "--tenant", "-t", help="The tenant to set for the user")):
"""Set the tenant for a user"""
if id is None:
id = Prompt.ask("Enter the ID of the user")
if tenant is None:
tenant = Prompt.ask("Enter the ID of the tenant to set for the user")
config = Config("default")
user_client = UserClient(config)
success, status_code = user_client.add_user_to_tenant(tenant, id)
if not success:
console.print(f"Failed to set tenant for user! Please check the logs for more information.", style="bold red")
return
console.print(f"Tenant set for user successfully!", style="bold green")