diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cas_eleves/settings.dev.py b/app/settings.dev.py similarity index 100% rename from cas_eleves/settings.dev.py rename to app/settings.dev.py diff --git a/cas_eleves/settings.prod.py b/app/settings.prod.py similarity index 100% rename from cas_eleves/settings.prod.py rename to app/settings.prod.py diff --git a/app/settings.py b/app/settings.py new file mode 100644 index 0000000..fd0a397 --- /dev/null +++ b/app/settings.py @@ -0,0 +1,151 @@ +""" +Django settings for the DGSI project. +""" + +from pathlib import Path + +from loadcredential import Credentials + +credentials = Credentials(env_prefix="CE_") + +# Build paths inside the project like this: BASE_DIR / "subdir". +BASE_DIR = Path(__file__).resolve().parent.parent + +# WARNING: keep the secret key used in production secret! +SECRET_KEY = credentials["SECRET_KEY"] + +# WARNING: don't run with debug turned on in production! +DEBUG = credentials.get_json("DEBUG", False) + +ALLOWED_HOSTS = credentials.get_json("ALLOWED_HOSTS", []) + +### +# List the installed applications + +INSTALLED_APPS = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "cas_eleves", + "cas_server", +] + +### +# List the installed middlewares + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", + "django.middleware.locale.LocaleMiddleware", +] + +### +# The main url configuration + +ROOT_URLCONF = "app.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "cas_eleves.wsgi.application" + +# Password validation +# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", + }, +] + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.1/howto/static-files/ + +PUBLIC_DIR = BASE_DIR / "public" + +STATIC_URL = "/static/" +STATIC_ROOT = PUBLIC_DIR / "static" + +CAS_SHOW_SERVICE_MESSAGES = False + +# Internationalization + +LOCALE_PATHS = [(BASE_DIR / "locale")] + +# Database +# https://docs.djangoproject.com/en/2.1/ref/settings/#databases + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": "cas_server", + "USER": "cas_server", + "HOST": "/var/run/postgresql/", + } +} + +# Internationalization +# https://docs.djangoproject.com/en/2.1/topics/i18n/ + +LANGUAGE_CODE = "fr-fr" +TIME_ZONE = "Europe/Paris" +USE_I18N = True +USE_L10N = True +USE_TZ = True + +# Logging + +LOGGING = { + "version": 1, + "disable_existing_loggers": False, + "handlers": { + "console": { + "class": "logging.StreamHandler", + }, + }, + "root": { + "handlers": ["console"], + "level": "WARNING", + }, +} + +# CAS backend settings +# See https://github.com/nitmir/django-cas-server#settings + +CAS_AUTH_CLASS = "cas_server.auth.LdapAuthUser" +CAS_LDAP_SERVER = "ldaps://ldap.spi.ens.fr" +# CAS_LDAP_USER = "cn=root,dc=spi,dc=ens,dc=fr" +CAS_LDAP_BASE_DN = "dc=spi,dc=ens,dc=fr" +CAS_LDAP_USER_QUERY = "(uid=%s)" +CAS_LDAP_USERNAME_ATTR = "uid" +CAS_LDAP_PASSWORD_CHECK = "bind" diff --git a/cas_eleves/settings_base.py b/app/settings_base.py similarity index 89% rename from cas_eleves/settings_base.py rename to app/settings_base.py index 7c6af92..24b87a4 100644 --- a/cas_eleves/settings_base.py +++ b/app/settings_base.py @@ -67,9 +67,15 @@ AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, - {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",}, - {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",}, - {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",}, + { + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", + }, ] # Static files (CSS, JavaScript, Images) diff --git a/cas_eleves/urls.py b/app/urls.py similarity index 95% rename from cas_eleves/urls.py rename to app/urls.py index 0b99b0b..cf36d7b 100644 --- a/cas_eleves/urls.py +++ b/app/urls.py @@ -13,9 +13,10 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -from django.contrib import admin -from django.urls import path, include + import cas_server.urls +from django.contrib import admin +from django.urls import include, path urlpatterns = [ path("admin/", admin.site.urls), diff --git a/cas_eleves/wsgi.py b/app/wsgi.py similarity index 82% rename from cas_eleves/wsgi.py rename to app/wsgi.py index fd92cf5..2ded7c6 100644 --- a/cas_eleves/wsgi.py +++ b/app/wsgi.py @@ -11,6 +11,6 @@ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cas_eleves.settings') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cas_eleves.settings") application = get_wsgi_application() diff --git a/cas_eleves/.gitignore b/cas_eleves/.gitignore deleted file mode 100644 index fce19e4..0000000 --- a/cas_eleves/.gitignore +++ /dev/null @@ -1 +0,0 @@ -settings.py diff --git a/manage.py b/manage.py index 24db581..e031798 100755 --- a/manage.py +++ b/manage.py @@ -2,8 +2,8 @@ import os import sys -if __name__ == '__main__': - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cas_eleves.settings') +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings") try: from django.core.management import execute_from_command_line except ImportError as exc: