diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 8a9e4d035a157d4d88774944636679250a3a452d..aa20122bff05c234df71ef99db5a6fda318e10cd 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -1072,11 +1072,6 @@ class PersonInvitation(AbstractBaseInvitation, PureDjangoModel): Person, on_delete=models.CASCADE, blank=True, related_name="invitation", null=True ) - @classmethod - def create(cls, email, inviter=None, **kwargs): - instance = cls._default_manager.create(email=email, inviter=inviter, **kwargs) - return instance - def __str__(self) -> str: return f"{self.email} ({self.inviter})" diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index c16032349e58dc4134e6bba064864e1724f688fe..15ca0e67478ed6483a8cd0df03aa38c1529b8762 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -264,14 +264,6 @@ class SignupEnabled(BooleanPreference): verbose_name = _("Enable signup") -@site_preferences_registry.register -class SignupOpen(BooleanPreference): - section = auth - name = "signup_open" - default = False - verbose_name = _("Signup open for everyone") - - @site_preferences_registry.register class InviteEnabled(BooleanPreference): section = auth diff --git a/aleksis/core/rules.py b/aleksis/core/rules.py index 0a0dde24f9b22766f0c686ffaa94c980bbb05012..9fc08709ec48e74f0a3801262d29a527764ac323 100644 --- a/aleksis/core/rules.py +++ b/aleksis/core/rules.py @@ -313,18 +313,12 @@ edit_default_dashboard_predicate = has_person & has_global_perm("core.edit_defau rules.add_perm("core.edit_default_dashboard_rule", edit_default_dashboard_predicate) # django-allauth -can_register_predicate = is_site_preference_set( - section="auth", pref="signup_enabled" -) & is_site_preference_set(section="auth", pref="signup_open") +can_register_predicate = is_site_preference_set(section="auth", pref="signup_enabled") rules.add_perm("core.can_register", can_register_predicate) can_change_password_predicate = is_site_preference_set(section="auth", pref="allow_password_change") rules.add_perm("core.can_change_password", can_change_password_predicate) -# django-invitations -invite_enabled_predicate = is_site_preference_set(section="auth", pref="invite_enabled") -rules.add_perm("core.invite_enabled", invite_enabled_predicate) - # OAuth2 permissions create_oauthapplication_predicate = has_person & has_global_perm("core.add_oauthapplication") rules.add_perm("core.create_oauthapplication_rule", create_oauthapplication_predicate) diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 5634286b0dffa0be97b58d70d82b43e7ef3d8e13..94971e5c5bbc11277afc245720b12ed8ab979a01 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -352,11 +352,17 @@ ACCOUNT_UNIQUE_EMAIL = _settings.get("auth.login.registration.unique_email", Tru # Configuration for django-invitations +# Use custom account adapter ACCOUNT_ADAPTER = "invitations.models.InvitationsAdapter" +# Expire invitations are configured amout of days INVITATIONS_INVITATION_EXPIRY = _settings.get("auth.invitation.expiry", 3) +# Use email prefix configured for django-allauth INVITATIONS_EMAIL_SUBJECT_PREFIX = ACCOUNT_EMAIL_SUBJECT_PREFIX +# Use custom invitation model INVITATIONS_INVITATION_MODEL = "core.PersonInvitation" +# Display error message if invitation code is invalid INVITATIONS_GONE_ON_ACCEPT_ERROR = False +# Mark invitation as accepted after signup INVITATIONS_ACCEPT_INVITE_AFTER_SIGNUP = True # Configuration for OAuth2 provider diff --git a/aleksis/core/views.py b/aleksis/core/views.py index 9bdc2ae48d95abcf051c0ae7b2d4e134dad52a9d..ecbfdbb4c157d2760de973ccf33c3ebcc10f2cfd 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -1407,9 +1407,7 @@ class AccountRegisterView(SignupView): success_url = "index" def dispatch(self, request, *args, **kwargs): - if not test_rule("core.can_register") and not request.session.get( - "account_verified_email" - ): + if not test_rule("core.can_register") and not request.session.get("account_verified_email"): raise PermissionDenied() return super(AccountRegisterView, self).dispatch(request, *args, **kwargs)