feat(auth): Add OAuth2 authentication
This commit is contained in:
55
secnex/app/user.py
Normal file
55
secnex/app/user.py
Normal file
@@ -0,0 +1,55 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user