Handle scenario where no valid otps for selected users on admin panel

This commit is contained in:
Debanjum
2025-04-11 17:21:16 +05:30
parent 02a6ce9f14
commit fe308c2911

View File

@@ -152,13 +152,17 @@ class KhojUserAdmin(UserAdmin, unfold_admin.ModelAdmin):
actions = ["get_email_login_url"]
def get_email_login_url(self, request, queryset):
any_valid_otps = False
for user in queryset:
if user.email:
if user.email and user.email_verification_code:
any_valid_otps = True
host = request.get_host()
otp = quote(user.email_verification_code)
encoded_email = quote(user.email)
login_url = f"{host}/auth/magic?code={otp}&email={encoded_email}"
messages.info(request, f"Email login URL for {user.email}: {login_url}")
if not any_valid_otps:
messages.error(request, "No valid OTPs found for the selected users.")
get_email_login_url.short_description = "Get email login URL" # type: ignore