109 lines
3.8 KiB
Python
109 lines
3.8 KiB
Python
####### Settings common to LMS and CMS
|
|
import json
|
|
import os
|
|
|
|
DEFAULT_FROM_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
DEFAULT_FEEDBACK_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
SERVER_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
TECH_SUPPORT_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
CONTACT_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
BUGS_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
UNIVERSITY_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
PRESS_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
PAYMENT_SUPPORT_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
BULK_EMAIL_DEFAULT_FROM_EMAIL = "no-reply@" + ENV_TOKENS["LMS_BASE"]
|
|
API_ACCESS_MANAGER_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
API_ACCESS_FROM_EMAIL = ENV_TOKENS["CONTACT_EMAIL"]
|
|
|
|
# Load module store settings from config files
|
|
update_module_store_settings(MODULESTORE, doc_store_settings=DOC_STORE_CONFIG)
|
|
DATA_DIR = "/openedx/data/"
|
|
for store in MODULESTORE["default"]["OPTIONS"]["stores"]:
|
|
store["OPTIONS"]["fs_root"] = DATA_DIR
|
|
|
|
# Set uploaded media file path
|
|
MEDIA_ROOT = "/openedx/media/"
|
|
|
|
# Video settings
|
|
VIDEO_IMAGE_SETTINGS["STORAGE_KWARGS"]["location"] = MEDIA_ROOT
|
|
VIDEO_TRANSCRIPTS_SETTINGS["STORAGE_KWARGS"]["location"] = MEDIA_ROOT
|
|
|
|
ORA2_FILEUPLOAD_BACKEND = "filesystem"
|
|
ORA2_FILEUPLOAD_ROOT = "/openedx/data/ora2"
|
|
ORA2_FILEUPLOAD_CACHE_NAME = "ora2-storage"
|
|
|
|
# Change syslog-based loggers which don't work inside docker containers
|
|
LOGGING["handlers"]["local"] = {
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": os.path.join(LOG_DIR, "all.log"),
|
|
"formatter": "standard",
|
|
}
|
|
LOGGING["handlers"]["tracking"] = {
|
|
"level": "DEBUG",
|
|
"class": "logging.handlers.WatchedFileHandler",
|
|
"filename": os.path.join(LOG_DIR, "tracking.log"),
|
|
"formatter": "standard",
|
|
}
|
|
LOGGING["loggers"]["tracking"]["handlers"] = ["console", "local", "tracking"]
|
|
# Disable django/drf deprecation warnings
|
|
import logging
|
|
import warnings
|
|
from django.utils.deprecation import RemovedInDjango30Warning, RemovedInDjango31Warning
|
|
from rest_framework import RemovedInDRF310Warning, RemovedInDRF311Warning
|
|
warnings.simplefilter('ignore', RemovedInDjango30Warning)
|
|
warnings.simplefilter('ignore', RemovedInDjango31Warning)
|
|
warnings.simplefilter('ignore', RemovedInDRF310Warning)
|
|
warnings.simplefilter('ignore', RemovedInDRF311Warning)
|
|
|
|
# Email
|
|
EMAIL_USE_SSL = {{ SMTP_USE_SSL }}
|
|
# Forward all emails from edX's Automated Communication Engine (ACE) to django.
|
|
ACE_ENABLED_CHANNELS = ["django_email"]
|
|
ACE_CHANNEL_DEFAULT_EMAIL = "django_email"
|
|
ACE_CHANNEL_TRANSACTIONAL_EMAIL = "django_email"
|
|
EMAIL_FILE_PATH = "/tmp/openedx/emails"
|
|
|
|
LOCALE_PATHS.append("/openedx/locale/contrib/locale")
|
|
LOCALE_PATHS.append("/openedx/locale/user/locale")
|
|
|
|
# Allow the platform to include itself in an iframe
|
|
X_FRAME_OPTIONS = "SAMEORIGIN"
|
|
|
|
{% set jwt_rsa_key = rsa_import_key(JWT_RSA_PRIVATE_KEY) %}
|
|
JWT_AUTH["JWT_ISSUER"] = "{{ JWT_COMMON_ISSUER }}"
|
|
JWT_AUTH["JWT_AUDIENCE"] = "{{ JWT_COMMON_AUDIENCE }}"
|
|
JWT_AUTH["JWT_SECRET_KEY"] = "{{ JWT_COMMON_SECRET_KEY }}"
|
|
JWT_AUTH["JWT_PRIVATE_SIGNING_JWK"] = json.dumps(
|
|
{
|
|
"kid": "openedx",
|
|
"kty": "RSA",
|
|
"e": "{{ jwt_rsa_key.e|long_to_base64 }}",
|
|
"d": "{{ jwt_rsa_key.d|long_to_base64 }}",
|
|
"n": "{{ jwt_rsa_key.n|long_to_base64 }}",
|
|
"p": "{{ jwt_rsa_key.p|long_to_base64 }}",
|
|
"q": "{{ jwt_rsa_key.q|long_to_base64 }}",
|
|
}
|
|
)
|
|
JWT_AUTH["JWT_PUBLIC_SIGNING_JWK_SET"] = json.dumps(
|
|
{
|
|
"keys": [
|
|
{
|
|
"kid": "openedx",
|
|
"kty": "RSA",
|
|
"e": "{{ jwt_rsa_key.e|long_to_base64 }}",
|
|
"n": "{{ jwt_rsa_key.n|long_to_base64 }}",
|
|
}
|
|
]
|
|
}
|
|
)
|
|
JWT_AUTH["JWT_ISSUERS"] = [
|
|
{
|
|
"ISSUER": "{{ JWT_COMMON_ISSUER }}",
|
|
"AUDIENCE": "{{ JWT_COMMON_AUDIENCE }}",
|
|
"SECRET_KEY": "{{ OPENEDX_SECRET_KEY }}"
|
|
}
|
|
]
|
|
|
|
{{ patch("openedx-common-settings") }}
|
|
######## End of settings common to LMS and CMS
|