progress.
This commit is contained in:
36
utils.py
Normal file
36
utils.py
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
from firebase_init import db
|
||||
from firebase_admin import auth as fb_auth
|
||||
|
||||
def get_user_profile(uid: str):
|
||||
"""Fetch user's Firestore profile: users/{uid} => { enabled, case_email, is_admin, user_email }"""
|
||||
doc_ref = db.collection("users").document(uid)
|
||||
snap = doc_ref.get()
|
||||
if not snap.exists:
|
||||
# bootstrap a placeholder doc so admins can fill it in
|
||||
# Get user email from Firebase Auth
|
||||
try:
|
||||
user = fb_auth.get_user(uid)
|
||||
user_email = user.email
|
||||
except Exception:
|
||||
user_email = None
|
||||
|
||||
doc_ref.set({
|
||||
"enabled": False,
|
||||
"is_admin": False,
|
||||
"user_email": user_email,
|
||||
"case_email": user_email
|
||||
}, merge=True)
|
||||
return {
|
||||
"enabled": False,
|
||||
"is_admin": False,
|
||||
"user_email": user_email,
|
||||
"case_email": user_email
|
||||
}
|
||||
data = snap.to_dict() or {}
|
||||
return {
|
||||
"enabled": bool(data.get("enabled", False)),
|
||||
"is_admin": bool(data.get("is_admin", False)),
|
||||
"user_email": data.get("user_email"),
|
||||
"case_email": data.get("case_email")
|
||||
}
|
||||
Reference in New Issue
Block a user