1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
from django.conf import settings
class AppSettings:
def __init__(self, prefix):
self.prefix = prefix
def _setting(self, name, dflt):
return getattr(settings, self.prefix + name, dflt)
@property
def INVITATION_EXPIRY(self):
"""How long before the invitation expires"""
return self._setting("INVITATION_EXPIRY", 3)
@property
def INVITATION_ONLY(self):
"""Signup is invite only"""
return self._setting("INVITATION_ONLY", False)
@property
def CONFIRM_INVITE_ON_GET(self):
"""Simple get request confirms invite"""
return self._setting("CONFIRM_INVITE_ON_GET", True)
@property
def ACCEPT_INVITE_AFTER_SIGNUP(self):
"""Accept the invitation after the user finished signup."""
return self._setting("ACCEPT_INVITE_AFTER_SIGNUP", False)
@property
def GONE_ON_ACCEPT_ERROR(self):
"""
If an invalid/expired/previously accepted key is provided, return a
HTTP 410 GONE response.
"""
return self._setting("GONE_ON_ACCEPT_ERROR", True)
@property
def ALLOW_JSON_INVITES(self):
"""Exposes json endpoint for mass invite creation"""
return self._setting("ALLOW_JSON_INVITES", False)
@property
def SIGNUP_REDIRECT(self):
"""Where to redirect on email confirm of invite"""
return self._setting("SIGNUP_REDIRECT", "account_signup")
@property
def LOGIN_REDIRECT(self):
"""Where to redirect on an expired or already accepted invite"""
return self._setting("LOGIN_REDIRECT", settings.LOGIN_URL)
@property
def ADAPTER(self):
"""The adapter, setting ACCOUNT_ADAPTER overrides this default"""
return self._setting("ADAPTER", "invitations.adapters.BaseInvitationsAdapter")
@property
def EMAIL_MAX_LENGTH(self):
"""
Adjust max_length of e-mail addresses
"""
return self._setting("EMAIL_MAX_LENGTH", 254)
@property
def EMAIL_SUBJECT_PREFIX(self):
"""
Subject-line prefix to use for email messages sent
"""
return self._setting("EMAIL_SUBJECT_PREFIX", None)
@property
def INVITATION_MODEL(self):
"""
Subject-line prefix to use for Invitation model setup
"""
return self._setting("INVITATION_MODEL", "invitations.Invitation")
@property
def INVITE_FORM(self):
"""
Form class used for sending invites outside admin.
"""
return self._setting("INVITE_FORM", "invitations.forms.InviteForm")
@property
def ADMIN_ADD_FORM(self):
"""
Form class used for sending invites in admin.
"""
return self._setting(
"ADMIN_ADD_FORM",
"invitations.forms.InvitationAdminAddForm",
)
@property
def ADMIN_CHANGE_FORM(self):
"""
Form class used for updating invitations in admin.
"""
return self._setting(
"ADMIN_CHANGE_FORM",
"invitations.forms.InvitationAdminChangeForm",
)
@property
def CONFIRMATION_URL_NAME(self):
return self._setting("CONFIRMATION_URL_NAME", "invitations:accept-invite")
app_settings = AppSettings("INVITATIONS_")
|