Files
authentik/docs/topics/customize/policies/expression/unique_email.md
Teffen Ellis 582812b3ec website: Flesh out docs split.
website: Copy files during build.

website: Allow for mixed env builds.

website: Reduce build size.

website: Expose build.

website: Add build memory debugging.

WIP: Disable broken links check to compare memory usage.

website: Update deps.

website: Clean up API paths.

website: Flesh out 3.8 fixes.

Format.

website: Update ignore paths.

Website: Clean up integrations build.

website: Fix paths.

website: Optimize remark.

website: Update deps.

website: Format.

website: Remove linking.

website: Fix paths.

wip: Attempt API only build.

Prep.

Migrate render to runtime. Tidy sidebar.

Clean up templates.

docs: Move directory. WIP

docs: Flesh out split.

website: Fix issue where routes have collisions.
2025-07-01 21:53:19 +02:00

806 B

title
title
Ensure unique email addresses

Due to the database design of authentik, email addresses are by default not required to be unique. This behavior can however be changed by policies.

The snippet below can be used as the expression in policies both with enrollment flows, where the policy should be bound to any stage before the User write stage, or with the Prompt stage.

from authentik.core.models import User

# Ensure this matches the *Field Key* value of the prompt
field_name = "email"
email = request.context["prompt_data"][field_name]
if User.objects.filter(email=email).exists():
  ak_message("Email address in use")
  return False
return True