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_EMAIL_ATTR = "mailu_email"
|
||||||
MAILU_APP_PASSWORD_ATTR = "mailu_app_password"
|
MAILU_APP_PASSWORD_ATTR = "mailu_app_password"
|
||||||
|
MAILU_ENABLED_ATTR = "mailu_enabled"
|
||||||
WGER_PASSWORD_ATTR = "wger_password"
|
WGER_PASSWORD_ATTR = "wger_password"
|
||||||
WGER_PASSWORD_UPDATED_ATTR = "wger_password_updated_at"
|
WGER_PASSWORD_UPDATED_ATTR = "wger_password_updated_at"
|
||||||
FIREFLY_PASSWORD_ATTR = "firefly_password"
|
FIREFLY_PASSWORD_ATTR = "firefly_password"
|
||||||
@ -226,7 +227,10 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
|||||||
"email": email,
|
"email": email,
|
||||||
"emailVerified": True,
|
"emailVerified": True,
|
||||||
"requiredActions": required_actions,
|
"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)
|
created_id = admin_client().create_user(payload)
|
||||||
user = admin_client().get_user(created_id)
|
user = admin_client().get_user(created_id)
|
||||||
@ -258,6 +262,17 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
|||||||
else:
|
else:
|
||||||
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
||||||
admin_client().set_user_attribute(username, MAILU_EMAIL_ATTR, mailu_email)
|
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:
|
except Exception:
|
||||||
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
mailu_email = f"{username}@{settings.MAILU_DOMAIN}"
|
||||||
|
|
||||||
@ -391,7 +406,7 @@ def provision_access_request(request_code: str) -> ProvisionResult:
|
|||||||
wger_password = random_password(20)
|
wger_password = random_password(20)
|
||||||
admin_client().set_user_attribute(username, WGER_PASSWORD_ATTR, wger_password)
|
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:
|
if not wger_password_updated_at:
|
||||||
result = trigger_wger_user_sync(username, wger_email, wger_password, wait=True)
|
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)
|
firefly_password = random_password(24)
|
||||||
admin_client().set_user_attribute(username, FIREFLY_PASSWORD_ATTR, firefly_password)
|
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:
|
if not firefly_password_updated_at:
|
||||||
result = trigger_firefly_user_sync(username, firefly_email, firefly_password, wait=True)
|
result = trigger_firefly_user_sync(username, firefly_email, firefly_password, wait=True)
|
||||||
|
|||||||
@ -236,7 +236,7 @@ def register(app) -> None:
|
|||||||
jellyfin_sync_detail = "unavailable"
|
jellyfin_sync_detail = "unavailable"
|
||||||
|
|
||||||
mailu_username = mailu_email or (f"{username}@{settings.MAILU_DOMAIN}" if username else "")
|
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
|
vaultwarden_username = vaultwarden_email or mailu_username
|
||||||
|
|
||||||
if not mailu_app_password and mailu_status == "ready":
|
if not mailu_app_password and mailu_status == "ready":
|
||||||
@ -391,7 +391,7 @@ def register(app) -> None:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
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()
|
password = random_password()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -442,7 +442,7 @@ def register(app) -> None:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
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)
|
password = random_password(24)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user