Make database, oauth, smtp server, mail verificaiton configurable in .env
This commit is contained in:
parent
9b5fe1627d
commit
712d9a843e
8 changed files with 109 additions and 31 deletions
|
|
@ -56,6 +56,15 @@ SECURE_HSTS_PRELOAD = True
|
|||
|
||||
# Application definition
|
||||
|
||||
OAUTH_ENABLED = config("OAUTH_ENABLED", default=False, cast=bool)
|
||||
OAUTH_ONLY = config("OAUTH_ONLY", default=False, cast=bool)
|
||||
OAUTH_CLIENT_ID = config("OAUTH_CLIENT_ID", default="")
|
||||
OAUTH_CLIENT_SECRET = config("OAUTH_CLIENT_SECRET", default="")
|
||||
OAUTH_SERVER_URL = config("OAUTH_SERVER_URL", default="")
|
||||
OAUTH_BUTTON_TEXT = config("OAUTH_BUTTON_TEXT", default="Login with OAuth")
|
||||
OAUTH_BUTTON_IMAGE = config("OAUTH_BUTTON_IMAGE", default="")
|
||||
OAUTH_SCOPE = config("OAUTH_SCOPE", default="openid profile email", cast=Csv(delimiter=" "))
|
||||
|
||||
INSTALLED_APPS = [
|
||||
"django.contrib.admin",
|
||||
"django.contrib.admindocs",
|
||||
|
|
@ -69,12 +78,14 @@ INSTALLED_APPS = [
|
|||
"allauth",
|
||||
"allauth.account",
|
||||
"allauth.socialaccount",
|
||||
"allauth_note_kfet",
|
||||
"crispy_forms",
|
||||
"photologue",
|
||||
"photo21",
|
||||
]
|
||||
|
||||
if OAUTH_ENABLED:
|
||||
INSTALLED_APPS += ["allauth_oauth"]
|
||||
|
||||
if DEBUG:
|
||||
INSTALLED_APPS += ["debug_toolbar",] # For debug and optimisations
|
||||
|
||||
|
|
@ -125,15 +136,31 @@ WSGI_APPLICATION = "photo21.wsgi.application"
|
|||
# Database
|
||||
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
|
||||
"OPTIONS": {
|
||||
"timeout": 10,
|
||||
},
|
||||
_db_engine = config("DB_ENGINE", default="sqlite").strip().lower()
|
||||
|
||||
if _db_engine == "postgres":
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": config("DB_NAME", default="photo21"),
|
||||
"USER": config("DB_USER", default="photo21"),
|
||||
"PASSWORD": config("DB_PASSWORD", default=""),
|
||||
"HOST": config("DB_HOST", default="localhost"),
|
||||
"PORT": config("DB_PORT", default="5432"),
|
||||
}
|
||||
}
|
||||
}
|
||||
elif _db_engine == "sqlite":
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
|
||||
"OPTIONS": {
|
||||
"timeout": 10,
|
||||
},
|
||||
}
|
||||
}
|
||||
else:
|
||||
raise ValueError(f"Unknown DB_ENGINE '{_db_engine}'. Must be 'sqlite' or 'postgres'.")
|
||||
|
||||
CACHES = {
|
||||
"default": {
|
||||
|
|
@ -221,6 +248,11 @@ if DEBUG:
|
|||
SERVER_EMAIL = config("SERVER_EMAIL", default="photos@crans.org")
|
||||
DEFAULT_FROM_EMAIL = f"Serveur photos <{SERVER_EMAIL}>"
|
||||
EMAIL_SUBJECT_PREFIX = "[Serveur photos] "
|
||||
EMAIL_HOST = config("SMTP_HOST", default="localhost")
|
||||
EMAIL_PORT = config("SMTP_PORT", default=25, cast=int)
|
||||
EMAIL_HOST_USER = config("SMTP_USER", default="")
|
||||
EMAIL_HOST_PASSWORD = config("SMTP_PASSWORD", default="")
|
||||
EMAIL_USE_TLS = config("SMTP_USE_TLS", default=False, cast=bool)
|
||||
|
||||
# After login redirect user to transfer page
|
||||
LOGIN_REDIRECT_URL = "/"
|
||||
|
|
@ -240,16 +272,23 @@ MESSAGE_TAGS = {
|
|||
# Allauth configuration ## For the django =< 5.0
|
||||
ACCOUNT_EMAIL_REQUIRED = True
|
||||
# ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*'] ## For the django =< 5.0
|
||||
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
|
||||
ACCOUNT_EMAIL_VERIFICATION = config("EMAIL_VERIFICATION", default="mandatory")
|
||||
ACCOUNT_AUTHENTICATION_METHOD = "username_email"
|
||||
# ACCOUNT_LOGIN_METHODS = {'username', 'email'}
|
||||
ACCOUNT_FORMS = {"signup": "photo21.forms.CustomSignupForm"}
|
||||
SOCIALACCOUNT_PROVIDERS = {
|
||||
"notekfet": {
|
||||
# Fetch user profile
|
||||
"SCOPE": ["1_1"],
|
||||
},
|
||||
}
|
||||
|
||||
if OAUTH_ENABLED:
|
||||
SOCIALACCOUNT_ONLY = OAUTH_ONLY
|
||||
SOCIALACCOUNT_PROVIDERS = {
|
||||
"oauth": {
|
||||
"SCOPE": OAUTH_SCOPE,
|
||||
"DOMAIN": OAUTH_SERVER_URL,
|
||||
"APP": {
|
||||
"client_id": OAUTH_CLIENT_ID,
|
||||
"secret": OAUTH_CLIENT_SECRET,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
# Use Bootstrap forms
|
||||
CRISPY_TEMPLATE_PACK = "bootstrap4"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue