base.py 3.61 KB
Newer Older
Florent Chehab's avatar
Florent Chehab committed
1
2
3
4
5
6
7
8
9
10
11
12
13
"""
Django settings for outgoing_rex project.

Generated by 'django-admin startproject' using Django 2.0.3.

For more information on this file, see
https://docs.djangoproject.com/en/2.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/
"""

import os
Florent Chehab's avatar
Florent Chehab committed
14
from os.path import dirname
15
import sys
Florent Chehab's avatar
Florent Chehab committed
16

Florent Chehab's avatar
Florent Chehab committed
17
18

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
Florent Chehab's avatar
Florent Chehab committed
19
BASE_DIR = dirname(dirname(dirname(os.path.abspath(__file__))))
Florent Chehab's avatar
Florent Chehab committed
20
21
22
23

# Application definition

INSTALLED_APPS = [
24
25
26
27
28
29
30
31
32
33
34
35
36
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django_cas_ng",
    "reversion",
    "reversion_compare",
    "rest_framework",
    "rest_framework.authtoken",
    "backend_app",
    "frontend_app",
Florent Chehab's avatar
Florent Chehab committed
37
38
39
]

MIDDLEWARE = [
40
41
42
43
44
45
46
47
    "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",
    "base_app.middleware.LoginRequiredMiddleware",
Florent Chehab's avatar
Florent Chehab committed
48
49
]

50
TESTING = "pytest" in sys.modules
Florent Chehab's avatar
Florent Chehab committed
51

52
ALLOWED_PHOTOS_EXTENSION = ["jpg", "jpeg", "png", "svg"]
53

54
INTERNAL_IPS = ["127.0.0.1"]
Florent Chehab's avatar
Florent Chehab committed
55

56
57
LOGIN_URL = "/user/login"
LOGIN_EXEMPT_URLS = [LOGIN_URL, "/admin/", "api"]
Florent Chehab's avatar
Florent Chehab committed
58
59

AUTHENTICATION_BACKENDS = [
60
61
    "django.contrib.auth.backends.ModelBackend",
    "django_cas_ng.backends.CASBackend",
Florent Chehab's avatar
linting    
Florent Chehab committed
62
]
Florent Chehab's avatar
Florent Chehab committed
63

64
CAS_SERVER_URL = "https://cas.utc.fr/cas/"
Florent Chehab's avatar
Florent Chehab committed
65
CAS_APPLY_ATTRIBUTES_TO_USER = True
66
CAS_RENAME_ATTRIBUTES = {"mail": "email", "givenName": "first_name", "sn": "last_name"}
Florent Chehab's avatar
Florent Chehab committed
67

Florent Chehab's avatar
Florent Chehab committed
68
69
REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
70
71
72
73
74
75
    "DEFAULT_PERMISSION_CLASSES": (
        "rest_framework.permissions.DjangoModelPermissions",
    ),
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework.authentication.SessionAuthentication",
        "rest_framework.authentication.TokenAuthentication",
Florent Chehab's avatar
Florent Chehab committed
76
77
78
    ),
}

Florent Chehab's avatar
Florent Chehab committed
79
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
Florent Chehab's avatar
Florent Chehab committed
80

81
ROOT_URLCONF = "base_app.urls"
Florent Chehab's avatar
Florent Chehab committed
82
83
84

TEMPLATES = [
    {
85
86
87
88
89
90
91
92
93
94
        "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",
            ]
Florent Chehab's avatar
Florent Chehab committed
95
        },
96
    }
Florent Chehab's avatar
Florent Chehab committed
97
98
]

99
WSGI_APPLICATION = "base_app.wsgi.application"
Florent Chehab's avatar
Florent Chehab committed
100
101
102
103
104


# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

Florent Chehab's avatar
Florent Chehab committed
105
# DB are set in other config files
106
DATABASES = {"default": None}
Florent Chehab's avatar
Florent Chehab committed
107
108
109
110
111
112
113


# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
114
115
        "NAME": "django.contrib.auth.password_validation."
        "UserAttributeSimilarityValidator"
Florent Chehab's avatar
Florent Chehab committed
116
    },
117
118
119
    {"NAME": "django.contrib.auth.password_validation." "MinimumLengthValidator"},
    {"NAME": "django.contrib.auth.password_validation." "CommonPasswordValidator"},
    {"NAME": "django.contrib.auth.password_validation." "NumericPasswordValidator"},
Florent Chehab's avatar
Florent Chehab committed
120
121
122
123
124
125
]


# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

126
127
LANGUAGE_CODE = "fr-fr"
TIME_ZONE = "Europe/Paris"
Florent Chehab's avatar
Florent Chehab committed
128
129
130
131
USE_I18N = True
USE_L10N = True
USE_TZ = True

132
133
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"