portal: gate mailu and internalize service emails
This commit is contained in:
parent
f97a6f6322
commit
33538cd99b
@ -19,6 +19,7 @@ from .wger_user_sync import trigger as trigger_wger_user_sync
|
||||
|
||||
MAILU_EMAIL_ATTR = "mailu_email"
|
||||
MAILU_APP_PASSWORD_ATTR = "mailu_app_password"
|
||||
MAILU_ENABLED_ATTR = "mailu_enabled"
|
||||
WGER_PASSWORD_ATTR = "wger_password"
|
||||
WGER_PASSWORD_UPDATED_ATTR = "wger_password_updated_at"
|
||||
FIREFLY_PASSWORD_ATTR = "firefly_password"
|
||||
@ -226,7 +227,10 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
||||
"email": email,
|
||||
"emailVerified": True,
|
||||
"requiredActions": required_actions,
|
||||
"attributes": {MAILU_EMAIL_ATTR: [mailu_email]},
|
||||
"attributes": {
|
||||
MAILU_EMAIL_ATTR: [mailu_email],
|
||||
MAILU_ENABLED_ATTR: ["true"],
|
||||
},
|
||||
}
|
||||
created_id = admin_client().create_user(payload)
|
||||
user = admin_client().get_user(created_id)
|
||||
@ -258,6 +262,17 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
||||
else:
|
||||
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
||||
admin_client().set_user_attribute(username, MAILU_EMAIL_ATTR, mailu_email)
|
||||
try:
|
||||
raw_enabled = attrs.get(MAILU_ENABLED_ATTR) if isinstance(attrs, dict) else None
|
||||
enabled_value = ""
|
||||
if isinstance(raw_enabled, list) and raw_enabled:
|
||||
enabled_value = str(raw_enabled[0]).strip()
|
||||
elif isinstance(raw_enabled, str):
|
||||
enabled_value = raw_enabled.strip()
|
||||
if enabled_value.lower() not in {"1", "true", "yes", "y", "on"}:
|
||||
admin_client().set_user_attribute(username, MAILU_ENABLED_ATTR, "true")
|
||||
except Exception:
|
||||
pass
|
||||
except Exception:
|
||||
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
||||
|
||||
@ -391,7 +406,7 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
||||
wger_password = random_password(20)
|
||||
admin_client().set_user_attribute(username, WGER_PASSWORD_ATTR, wger_password)
|
||||
|
||||
wger_email = mailu_email or contact_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
wger_email = mailu_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
|
||||
if not wger_password_updated_at:
|
||||
result = trigger_wger_user_sync(username, wger_email, wger_password, wait=True)
|
||||
@ -431,7 +446,7 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
||||
firefly_password = random_password(24)
|
||||
admin_client().set_user_attribute(username, FIREFLY_PASSWORD_ATTR, firefly_password)
|
||||
|
||||
firefly_email = mailu_email or contact_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
firefly_email = mailu_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
|
||||
if not firefly_password_updated_at:
|
||||
result = trigger_firefly_user_sync(username, firefly_email, firefly_password, wait=True)
|
||||
|
||||
@ -236,7 +236,7 @@ def register(app) -> None:
|
||||
jellyfin_sync_detail = "unavailable"
|
||||
|
||||
mailu_username = mailu_email or (f"{username}@{settings.MAILU_DOMAIN}" if username else "")
|
||||
firefly_username = mailu_email or keycloak_email or username
|
||||
firefly_username = mailu_username
|
||||
vaultwarden_username = vaultwarden_email or mailu_username
|
||||
|
||||
if not mailu_app_password and mailu_status == "ready":
|
||||
@ -391,7 +391,7 @@ def register(app) -> None:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
email = mailu_email or keycloak_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
email = mailu_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
password = random_password()
|
||||
|
||||
try:
|
||||
@ -442,7 +442,7 @@ def register(app) -> None:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
email = mailu_email or keycloak_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
email = mailu_email or f"{username}@{settings.MAILU_DOMAIN}"
|
||||
password = random_password(24)
|
||||
|
||||
try:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user