diff --git a/aleksis/core/models.py b/aleksis/core/models.py index d8f63e606073f92e8db799206012cfc9a998a5d8..c0f03d34707c26e24ca6826cf5c9d4e7d87b10d5 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -1150,8 +1150,16 @@ class PersonInvitation(AbstractBaseInvitation, PureDjangoModel): def __str__(self) -> str: return f"{self.email} ({self.inviter})" - key_expired = Invitation.key_expired + @classmethod + def create(cls, email, inviter=None, **kwargs): + length = get_site_preferences()["auth__invite_code_length"] + packet_size = get_site_preferences()["auth__invite_code_packet_size"] + code = generate_random_code(length, packet_size) + instance = cls._default_manager.create(email=email, inviter=inviter, key=code, **kwargs) + return instance + + key_expired = Invitation.key_expired send_invitation = Invitation.send_invitation