authentik.recovery.lib
Recovery helper functions.
1"""Recovery helper functions.""" 2 3from datetime import datetime 4 5from django.urls import reverse 6from django.utils.text import slugify 7from django.utils.timezone import now 8 9from authentik.core.models import Group, Token, TokenIntents, User 10 11 12def create_admin_group(user: User) -> Group: 13 """Create admin group and add user to it.""" 14 group, _ = Group.objects.update_or_create( 15 name="authentik Admins", 16 defaults={ 17 "is_superuser": True, 18 }, 19 ) 20 group.users.add(user) 21 22 return group 23 24 25def create_recovery_token(user: User, expiry: datetime, generated_from: str) -> tuple[Token, str]: 26 """Create recovery token and associated link""" 27 _now = now() 28 token = Token.objects.create( 29 expires=expiry, 30 user=user, 31 intent=TokenIntents.INTENT_RECOVERY, 32 description=f"Recovery Token generated by {generated_from} on {_now}", 33 identifier=slugify(f"ak-recovery-{user}-{_now}"), 34 ) 35 url = reverse("authentik_recovery:use-token", kwargs={"key": str(token.key)}) 36 return token, url
13def create_admin_group(user: User) -> Group: 14 """Create admin group and add user to it.""" 15 group, _ = Group.objects.update_or_create( 16 name="authentik Admins", 17 defaults={ 18 "is_superuser": True, 19 }, 20 ) 21 group.users.add(user) 22 23 return group
Create admin group and add user to it.
def
create_recovery_token( user: authentik.core.models.User, expiry: datetime.datetime, generated_from: str) -> tuple[authentik.core.models.Token, str]:
26def create_recovery_token(user: User, expiry: datetime, generated_from: str) -> tuple[Token, str]: 27 """Create recovery token and associated link""" 28 _now = now() 29 token = Token.objects.create( 30 expires=expiry, 31 user=user, 32 intent=TokenIntents.INTENT_RECOVERY, 33 description=f"Recovery Token generated by {generated_from} on {_now}", 34 identifier=slugify(f"ak-recovery-{user}-{_now}"), 35 ) 36 url = reverse("authentik_recovery:use-token", kwargs={"key": str(token.key)}) 37 return token, url
Create recovery token and associated link