Spaces:
Running
Running
File size: 1,388 Bytes
d70361b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | """List users in the local DB so we can diagnose sign-in mismatches.
Usage: python scripts/show_users.py [substring]
"""
import os
import sys
from pathlib import Path
HERE = Path(__file__).resolve().parent
ROOT = HERE.parent
sys.path.insert(0, str(ROOT))
os.chdir(ROOT)
try:
from dotenv import load_dotenv
load_dotenv(ROOT / ".env", override=True)
except ImportError:
pass
os.environ.setdefault("APP_MODE", "dda")
from sqlalchemy import text as sa_text # noqa: E402
from app.database import SessionLocal # noqa: E402
from app.models import LoginHistory # noqa: E402,F401 — register mapper
from app.dda.rbac.models import Role, Module, RolePermission, MenuItem # noqa: E402,F401
def main() -> None:
substr = (sys.argv[1] if len(sys.argv) > 1 else "").strip().lower()
db = SessionLocal()
try:
rows = db.execute(sa_text(
"SELECT id, email, full_name, phone, role, created_at FROM users ORDER BY id"
)).fetchall()
matches = [r for r in rows if not substr or substr in (r[1] or "").lower()]
print(f"Total users: {len(rows)} Matching {'*' if not substr else repr(substr)}: {len(matches)}")
print("-" * 90)
for r in matches:
print(f"#{r[0]:>3} {r[1]!r:<40} phone={r[3]!r} role={r[4]!r} fullName={r[2]!r}")
finally:
db.close()
if __name__ == "__main__":
main()
|