Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/ES/Configuration+de+la+plateforme) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 25) afficher la version suivante »

Les variables suivantes sont utilisées par la plateforme pour son fonctionnement. Leurs valeurs peuvent être changées dans votre fichier de configuration :

(django_pod) pod@pod:/usr/local/django_projects/podv2$ vim pod/custom/settings_local.py

La documentation suivante précise pour chaque variable son nom, son usage et sa valeur par défaut.


Configuration principale

PropertyDescriptionDefault Value
SECRET_KEYLa clé secrète d’une installation Django. Elle est utilisée dans le contexte de la signature cryptographique, et doit être définie à une valeur unique et non prédictible. https://docs.djangoproject.com/fr/1.11/ref/settings/#secret-key'A_CHANGER'
DEBUGUne valeur booléenne qui active ou désactive le mode de débogage. Ne déployez jamais de site en production avec le réglage DEBUG activé. https://docs.djangoproject.com/fr/1.11/ref/settings/#debugTrue
ALLOWED_HOSTSUne liste de chaînes représentant des noms de domaine/d’hôte que ce site Django peut servir. C’est une mesure de sécurité pour empêcher les attaques d’en-tête Host HTTP, qui sont possibles même avec bien des configurations de serveur Web apparemment sécurisées. https://docs.djangoproject.com/fr/1.11/ref/settings/#allowed-hosts['localhost']
SESSION_COOKIE_AGEL’âge des cookies de sessions, en secondes. https://docs.djangoproject.com/fr/1.11/ref/settings/#session-cookie-age14400
SESSION_EXPIRE_AT_BROWSER_CLOSEIndique s’il faut que la session expire lorsque l’utilisateur ferme son navigateur. https://docs.djangoproject.com/fr/1.11/ref/settings/#session-cookie-ageTrue
ADMINSUne liste de toutes les personnes qui reçoivent les notifications d’erreurs dans le code. Lorsque DEBUG=False et qu’une vue lève une exception, Django envoie un courriel à ces personnes contenant les informations complètes de l’exception. Chaque élément de la liste doit être un tuple au format « (nom complet, adresse électronique) ». Exemple : [('John', 'john@example.com'), ('Mary', 'mary@example.com')] Dans Pod, les "admins" sont également destinataires des courriels de contact, d'encodage ou de flux rss si la variable CONTACT_US_EMAIL n'est pas renseignée.( ('Name', 'adminmail@univ.fr'),)
MANAGERSDans Pod, les "managers" sont destinataires des courriels de fin d'encodage (et ainsi des vidéos déposées sur la plateforme). Le premier managers renseigné est également contact des flus rss. Ils sont aussi destinataires des courriels de contact si la variable CONTACT_US_EMAIL n'est pas renseignée.ADMINS
DATABASESUn dictionnaire contenant les réglages de toutes les bases de données à utiliser avec Django. C’est un dictionnaire imbriqué dont les contenus font correspondre l’alias de base de données avec un dictionnaire contenant les options de chacune des bases de données. https://docs.djangoproject.com/fr/1.11/ref/settings/#databases

{
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

LANGUAGE_CODELangue par défaut si non détectéefr
LANGUAGESLangue disponible et traduite

( ('fr', 'Français'), ('en', 'English'), ('nl', 'Dutch (Netherlands)'))

TIME_ZONEUne chaîne représentant le fuseau horaire pour cette installation. https://docs.djangoproject.com/fr/1.11/ref/settings/#std:setting-TIME_ZONEUTC
FILE_UPLOAD_TEMP_DIRLe répertoire dans lequel stocker temporairement les données (typiquement pour les fichiers plus grands que FILE_UPLOAD_MAX_MEMORY_SIZE) lors des téléversements de fichiers. https://docs.djangoproject.com/fr/1.11/ref/settings/#file-upload-temp-dir/var/tmp
STATIC_ROOTLe chemin absolu vers le répertoire dans lequel collectstatic rassemble les fichiers statiques en vue du déploiement. https://docs.djangoproject.com/fr/1.11/ref/settings/#std:setting-STATIC_ROOT/pod/static
MEDIA_ROOTChemin absolu de système de fichiers pointant vers le répertoire qui contiendra les fichiers téléversés par les utilisateurs. https://docs.djangoproject.com/fr/1.11/ref/settings/#std:setting-MEDIA_ROOT/pod/media
EMAIL_HOSTnom du serveur smtpsmtp.univ.fr
EMAIL_PORTport d'écoute du serveur smtp25
SERVER_EMAILcourriel utilisé par défaut pour les envois automatique (erreur de code etc.)noreply@univ.fr
DEFAULT_FROM_EMAILcourriel utilisé par défaut pour les envois de courriel (contact, encodage etc.)noreply@univ.fr
MENUBAR_HIDE_INACTIVE_OWNERSLes utilisateurs inactif ne sont plus affichés dans la barre de menu utilisateurTrue
MENUBAR_SHOW_STAFF_OWNERS_ONLYLes utilisateurs non staff ne sont plus affichés dans la barre de menu utilisateurFalse
HOMEPAGE_SHOWS_PASSWORDEDAfficher les vidéos dont l'accès est protégé par mot de passe sur la page d'accueilFalse
HOMEPAGE_SHOWS_RESTRICTEDAfficher les vidéos dont l'accès est protégé par authentification sur la page d'accueilFalse
FORCE_LOWERCASE_TAGSLes mots clés saisis lors de l'ajout de vidéo sont convertis automatiquement en minusculeTrue
MAX_TAG_LENGTHLes mots clés saisis lors de l'ajout de vidéo ne peuvent dépassé la longueur saisie50
USE_PODFILEUtiliser l'application de gestion de fichier fourni avec le projet. Si False, chaque fichier envoyé ne pourra être utilisé qu'une seule fois.False
THIRD_PARTY_APPSListe des applications tierces accessibles.[]
FILES_DIRNom du répertoire racine ou les fichiers "complémentaires" (hors vidéos etc.) sont téléversés.files
SUBJECT_CHOICESChoix de sujet pour les courriels envoyés depuis la plateforme( ('', '-----'), ('info', ('Request more information')), ('contribute', ('Learn more about how to contribute')), ('request_password', ('Password request for a video')), ('inappropriate_content', ('Report inappropriate content')), ('bug', ('Correction or bug report')), ('other', ('Other (please specify)')) )
HIDE_USERNAMESi valeur vaut 'True', le username de l'utilisateur ne sera pas visible sur la plate-forme Pod et si la valeur vaut 'False' le username sera affichés aux utilisateurs authentifiés. (par soucis du respect du RGPD)False
HIDE_USER_TABSi valeur vaut 'True', l'onglet Utilisateur ne sera pas visible et si la valeur vaut 'False' l'onglet Utilisateur ne sera visible qu'aux personnes authentifiées. (par soucis du respect du RGPD)

False

HIDE_USER_FILTERSi la valeur vaut 'True', le filtre des vidéos par utilisateur ne sera plus visible sur la plate-forme Pod et si la valeur vaut 'False' le filtre sera visible qu'aux personnes authentifiées. (par soucis du respect du RGPD)False
LINK_SUPERPOSITIONSi valeur vaut 'True', les URLs contenues dans le texte de superposition seront transformées, à la lecture de la vidéo, en lien cliquable.False
CUSTOM_CONTACT_USSi valeur vaut 'True', les e-mails de contacts seront adressés, selon le sujet, soit au propriétaire de la vidéo soit au(x) manageur(s) des vidéos Pod. (voir USER_CONTACT_EMAIL_CASE et USE_ESTABLISHMENT_FIELD )False
USER_CONTACT_EMAIL_CASEUne liste contenant les sujets de contact dont l'utilisateur sera seul destinataire plutôt que le(s) manageur(s). Si la liste est vide, les mails de contact seront envoyés au(x) manageur(s). Valeurs possibles : 'info', 'contribute', 'request_password', 'inapropriate_content', 'bug', 'other'[ ]
USE_ESTABLISHMENT_FIELD

Si valeur vaut 'True', rajoute un attribut 'establishment' à l'utilisateur Pod ce qui permet de gérer plus d'un établissement pouvant utiliser Pod. Dans ce cas les emails de contact par exemple seront envoyés soit à l'utilisateur soit au(x) manageur(s) de l'établissement de l'utilisateur. (voir USER_CONTACT_EMAIL_CASE )

Egalement les emails de fin d'encodage seront envoyés au(x) manageur(s) de l'établissement du propriétaire de la vidéo encodée, en plus d'un email au propriétaire, en confirmation de la fin d'encodage de sa vidéo.

False
USE_STATS_VIEWPermet d'activer la possibilité de voir en details le nombre de visualisation d'une vidéo durant un jour donné ou mois, année ou encore le nombre de vue total depuis la création de la vidéo. un lien est rajouté dans la partie info lors de la lecture d'une vidéo, un lien est rajouté dans la page de visualisation d'une chaîne ou un theme ou encore toutes les vidéos présentes sur la plateforme.False
MAX_DURATION_DATE_DELETEFixe une année maximale que la date de suppression d'une vidéo ne peut dépasser. Par défaut MAX_DURATION_DATE_DELETE = 10. (Année courante + 10 ans).10

Configuration des templates / de l'affichage

L'ensemble des variables ci-après doivent être contnu dans un dictionnnaire TEMPLATE_VISIBLE_SETTINGS.

Voici sa valeur par défaut :

TEMPLATE_VISIBLE_SETTINGS = {
    'TITLE_SITE': 'Pod',
    'TITLE_ETB': 'University name',
    'LOGO_SITE': 'img/logoPod.svg',
    'LOGO_ETB': 'img/logo_etb.svg',
    'LOGO_PLAYER': 'img/logoPod.svg',
    'LINK_PLAYER': '',
    'FOOTER_TEXT': ('',),
    'FAVICON': 'img/logoPod.svg',
    'CSS_OVERRIDE' : '',
'PRE_HEADER_TEMPLATE' : '',
'POST_FOOTER_TEMPLATE' : '',
'TRACKING_TEMPLATE' : '',
}


PropertyDescriptionDefault Value
TITLE_SITETitre du site.'Pod'
TITLE_ETBTitre de l’établissement.'University name'
LOGO_SITELogo affiché en haut à gauche sur toutes les pages. Doit se situer dans le répertoire static'img/logoPod.svg'
LOGO_ETBLogo affiché dans le footer sur toutes les pages. Doit se situer dans le répertoire static'img/logo_etb.svg'
LOGO_PLAYERLogo affiché sur le player video. Doit se situer dans le répertoire static'img/logoPod.svg'
LINK_PLAYERLien de destination du logo affiché sur le player''
FOOTER_TEXTTexte affiché dans le footer. Une ligne par entrée, accepte du code html. Par exmple : ( '42, rue Paul Duez', '59000 Lille - France', ('<a href="https://goo.gl/maps/AZnyBK4hHaM2"' ' target="_blank">Google maps</a>') )('',)
FAVICONIcon affiché dans la barre d'adresse du navigateur'img/logoPod.svg'
CSS_OVERRIDESi souhaitée, à créer et sauvegarder dans le répertoire static de l'application custom et préciser le chemin d'accès. Par exemple : "custom/etab.css"''
PRE_HEADER_TEMPLATE

vous pouvez créer un template dans votre application custom et indiquer son chemin dans cette variable pour que ce code html, ce template soit affiché en haut de votre page, le code est ajouté juste après la balise body.(Or iframe)

Si le fichié créé est '/usr/local/django_projects/podv2/pod/custom/templates/custom/preheader.html' alors la varaible doit prendre la valeur 'custom/preheader.html'

''
POST_FOOTER_TEMPLATE
Idem que pre-header, le code contenu dans le template sera affiché juste avant la fermeture du body. (Or iframe)''
TRACKING_TEMPLATE
vous pouvez créer un template dans votre application custom pour y intégrer votre code Piwik ou Google analytics. Ce template est inséré dans toutes les pages de la plateforme, y compris en mode iframe''

Configuration application recherche

PropertyDescriptionDefault Value
ES_URLadresse du ou des instances d'Elasticsearch utilisées pour l'indexation et la recherche de vidéo.['http://127.0.0.1:9200/']
ES_INDEXValeur pour l’index de ElasticSearchpod

Pour mettre à jour le moteur de recherche, je lance toutes les nuits la tache cron suivante :

0 5 * * * cd /home/pod/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage.py index_videos --all

Configuration encodage

PropertyDescriptionDefault Value
FFMPEGcommande ffmpegffmpeg
FFPROBEcommande ffprobeffprobe
SEGMENT_TARGET_DURATIONdurée en seconde des segment HLS2
RATE_MONITOR_BUFFER_RATIOla taille du buffer est égale au bitrate vidéo du rendu multiplié par cette valeur2
FFMPEG_NB_THREADSnombre de thread possible pour ffmpeg (0 égale maximum possible)0
GET_INFO_VIDEOCommande utilisée pour récupérer les informations de la première piste video du fichier envoyé"%(ffprobe)s -v quiet -show_format -show_streams -select_streams v:0 -print_format json -i %(source)s"
GET_INFO_AUDIOCommande utilisée pour récupérer les informations de la première piste audio du fichier envoyé"%(ffprobe)s -v quiet -show_format -show_streams -select_streams a:0 -print_format json -i %(source)s"
FFMPEG_STATIC_PARAMSparamètres de la commande ffmpeg utilisés pour encoder toutes les vidéos, peu importe le rendu" -c:a aac -ar 48000 -c:v h264 -profile:v high -pix_fmt yuv420p -crf 20 -sc_threshold 0 -force_key_frames \"expr:gte(t,n_forced*1)\" -deinterlace -threads %(nb_threads)s "
FFMPEG_MISC_PARAMSautres paramètres qui sont placés au début de la commande" -hide_banner -y "
AUDIO_BITRATEbitrate audio pour l'encodage M4A (encodage des fichiers audio envoyés sur la plateforme)192k
ENCODING_M4Acommande utilisée pour l'encodage des fichiers audio envoyés sur la plateforme%(ffmpeg)s -i %(source)s %(misc_params)s -c:a aac -b:a %(audio_bitrate)s -vn -threads %(nb_threads)s \"%(output_dir)s/audio_%(audio_bitrate)s.m4a\"
ENCODE_MP3_CMDcommande utilisée pour l'encodage audio pour tous les fichiers envoyés sur la plateforme"%(ffmpeg)s -i %(source)s %(misc_params)s -vn -b:a %(audio_bitrate)s -vn -f mp3 -threads %(nb_threads)s \"%(output_dir)s/audio_%(audio_bitrate)s.mp3\""
EMAIL_ON_ENCODING_COMPLETIONSi True, un courriel est envoyé aux managers et à l'auteur (si DEBUG est à True) à la fin de l'encodageTrue
FILE_UPLOAD_TEMP_DIRRépertoire temporaire pour la création des thumbnails'/tmp'
CELERY_TO_ENCODEUtilisation de Celery pour la gestion des taches d'encodageFalse

Configuration flux RSS

PropertyDescriptionDefault Value
DEFAULT_DC_COVERAGEcouverture du droit pour chaque vidéoTITLE_ETB + " - Town - Country"
DEFAULT_DC_RIGHTSdroit par défaut affichés dans le flux RSS si non renseigné"BY-NC-SA"

Configuration application vidéo

PropertyDescriptionDefault Value
RESTRICT_EDIT_VIDEO_ACCESS_TO_STAFF_ONLYSi True, seule les personnes "Staff" peuvent déposer des vidéos sur la plateformeFalse
DEFAULT_THUMBNAILimage par défaut affichée comme poster ou vignette, utilisée pour présenter la vidéo. Cette image doit se situer dans le répertoire static.'img/default.png'
ENCODING_CHOICESEncodage possible sur la plateforme. Associé à un rendu dans le cas d'une vidéo.( ("audio", "audio"), ("360p", "360p"), ("480p", "480p"), ("720p", "720p"), ("1080p", "1080p"), ("playlist", "playlist") )
FORMAT_CHOICESFormat d'encodage réalisé sur la plateforme.( ("video/mp4", 'video/mp4'), ("video/mp2t", 'video/mp2t'), ("video/webm", 'video/webm'), ("audio/mp3", "audio/mp3"), ("audio/wav", "audio/wav"), ("application/x-mpegURL", application/x-mpegURL"), )
LICENCE_CHOICESLicence proposées pour les vidéos.( ('by', ("Attribution 4.0 International (CC BY 4.0)")), ('by-nd', ("Attribution-NoDerivatives 4.0 " "International (CC BY-ND 4.0)" )), ('by-nc-nd', ( "Attribution-NonCommercial-NoDerivatives 4.0 " "International (CC BY-NC-ND 4.0)" )), ('by-nc', ("Attribution-NonCommercial 4.0 " "International (CC BY-NC 4.0)")), ('by-nc-sa', ( "Attribution-NonCommercial-ShareAlike 4.0 " "International (CC BY-NC-SA 4.0)" )), ('by-sa', ( "Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)")) )
DEFAULT_TYPE_IDLes vidéos créées sans type (par importation par exemple) seront affectées au type par défaut (en général, le type ayant pour identifiant '1' est 'Other')1
CURSUS_CODESListe des cursus proposés lors de l'ajout des vidéos. Affichés en dessous d'une vidéos, ils sont aussi utilisés pour affiner la recherche.( ('0', ("None / All")), ('L', ("Bachelor’s Degree")), ('M', ("Master’s Degree")), ('D', ("Doctorate")), ('1', _("Other")) )
LANG_CHOICESListe des langues proposées lors de l'ajout des vidéos. Affichés en dessous d'une vidéos, ils sont aussi utilisés pour affiner la recherche.( settings.PREF_LANG_CHOICES + (('', '----------'),) + settings.ALL_LANG_CHOICES )
VIDEOS_DIRRépertoire par défaut pour le téléversement des vidéos.videos
ENCODE_VIDEOFonction appelée pour lancer l'encodage des vidéosstart_encode
VIDEO_ALLOWED_EXTENSIONSExtension autorisée pour le téléversement sur la plateforme( '3gp', 'avi', 'divx', 'flv', 'm2p', 'm4v', 'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'mts', 'wmv', 'mp3', 'ogg', 'wav', 'wma' )
VIDEO_MAX_UPLOAD_SIZETaille maximum en Go des fichiers téléversés sur la plateforme1
VIDEO_FORM_FIELDS_HELP_TEXTEnsemble des textes d'aide affichés avec le formulaire d'envoi de vidéovoir pod/video/forms.py
VIDEO_FORM_FIELDSListe des champs du formulaire d'édition de vidéos affichés__all__
CHANNEL_FORM_FIELDS_HELP_TEXTEnsemble des textes d'aide affichés avec le formulaire d'édition de chaine.voir pod/video/forms.py
THEME_FORM_FIELDS_HELP_TEXTEnsemble des textes d'aide affichés avec le formulaire d'édition de theme.voir pod/video/forms.py

Configuration application recorder (enregistreur)

PropertyDescriptionDefault Value
RECORDER_TYPEType d'enregistrement géré par la plateforme. Un enregistreur ne peut déposer que des fichiers de type proposé par la plateforme. Le traitement se fait en fonction du type de fichier déposé.( ('video', _('Video')), ('audiovideocast', _('Audiovideocast')), )
DEFAULT_RECORDER_PATHChemin racine du répertoire où sont déposés les enregistrements (chemin du serveur FTP)."/data/ftp-pod/ftp/"
DEFAULT_RECORDER_USER_IDIdentifiant du propriétaire par défaut (si non spécifié) des enregistrements déposés.1
DEFAULT_RECORDER_IDAjoute un enregistreur par défaut à un enregistrement non identifiable (mauvais chemin dans le dépôt FTP).1
DEFAULT_RECORDER_TYPE_IDIdentifiant du type de vidéo par défaut (si non spécifié). (Exemple : 3 pour Colloque/conférence, 4 pour Cours...)1
ALLOW_RECORDER_MANAGER_CHOICE_VID_OWNERSi True, le manager de l'enregistreur pourra choisir un propriétaire de l'enregistrement.True
ALLOW_MANUAL_RECORDING_CLAIMINGSi True, une page apparaîtra dans le menu du profil de l'utilisateur autorisé permettant de s'attribuer un enregistrement.False
RECORDER_SKIP_FIRST_IMAGESi True, permet de ne pas prendre en compte la 1° image lors du traitement d'une fichier d'enregistrement de type AudioVideoCast.False
SELF_REQUESTS_PROXIESPrécise les proxy à utiliser pour une requête vers l'application elle même, par défaut force la non utilisation de proxy"http"None"https"None}
ALLOW_INSECURE_REQUESTS Autorise la requête sur l'application en elle même sans vérifier le certificat SSLFalse
PUBLIC_RECORD_DIRChemin d'accès web (public) au répertoire de dépot des enregistrements (DEFAULT_RECORDER_PATH). Attention à penser à modifier la conf de NGINXrecords
USE_RECORD_PREVIEWSi True, affiche l'icone de prévisualisation des vidéos dans la page "Revendiquer un enregistrement"False

Configuration application podfile (gestion de fichier)

PropertyDescriptionDefault Value
FILE_ALLOWED_EXTENSIONSExtensions autorisées pour les documents téléversés dans le gestionnaire de fichier( 'doc', 'docx', 'odt', 'pdf', 'xls', 'xlsx', 'ods', 'ppt', 'pptx', 'txt', 'html', 'htm', 'vtt', 'srt', 'webm', 'ts', )
IMAGE_ALLOWED_EXTENSIONSExtensions autorisées pour les images téléversés dans le gestionnaire de fichier( 'jpg', 'jpeg', 'bmp', 'png', 'gif', 'tiff', )
FILE_MAX_UPLOAD_SIZEPoids maximum en Mo par fichier téléversé dans le gestionnaire de fichier10

Configuration application completion (contributeur, sous-titre, document à télécharger, superposition)

PropertyDescriptionDefault Value
ROLE_CHOICESListe de rôle possible pour un contributeur( ('actor', ('actor')), ('author', ('author')), ('designer', ('designer')), ('consultant', ('consultant')), ('contributor', ('contributor')), ('editor', ('editor')), ('speaker', ('speaker')), ('soundman', ('soundman')), ('director', ('director')), ('writer', ('writer')), ('technician', ('technician')), ('voice-over', ('voice-over')), )
KIND_CHOICESListe de type de piste possible pour une vidéo (sous-titre, légende etc.)( ('subtitles', ('subtitles')), ('captions', ('captions')), )

Configuration application authentification (Local, CAS et LDAP)

PropertyDescriptionDefault Value
AUTH_TYPEType d'authentification possible sur votre instance. Pour l'instant local ou cas(('local', _('local')), ('CAS', 'CAS'))
USE_CASActivation de l'authentification CAS en plus de l'authentification localeFalse
CAS_SERVER_URLUrl du serveur cas de l'établissement. Format http://url_cassso_cas
CAS_GATEWAYSi True, authentifie automatiquement l'individu si déjà authentifié sur le serveur CASFalse
POPULATE_USERSi utilisation de la connection CAS, renseigne les champs du compte de la personne depuis une source externe. Valeur possible : None (pas de renseignement), CAS (renseigne les champs de la personne depuis les informations renvoyées par le CAS), LDAP (Interroge le serveur LDAP pour renseigner les champs du compte de la personne)None
AUTH_CAS_USER_SEARCHvariable utilisée pour trouver les informations de l'individu connecté dans le fichier renvoyé par le CAS lors de l'authentificationuser
USER_CAS_MAPPING_ATTRIBUTESliste de correspondance entre les champs d'un compte de Pod et les champs renvoyés par le CAS{ "uid": "uid", "mail": "mail", "last_name": "sn", "first_name": "givenname", "affiliation": "eduPersonAffiliation" }
CREATE_GROUP_FROM_AFFILIATIONSi True, des groupes sont créés automatiquement à partir des affiliations des individus qui se connectent sur la plateforme et l'individu qui se connecte est ajouté automatiquement à ses groupesFalse
AFFILIATION_STAFFLes personnes ayant pour affiliation les valeurs renseignées dans cette variable sont automatiquement la valeur staff de leur compte à True('faculty', 'employee', 'staff')
AFFILIATIONValeurs possibles pour l'Affiliation du compte( ('student', ('student')), ('faculty', ('faculty')), ('staff', ('staff')), ('employee', ('employee')), ('member', ('member')), ('affiliate', ('affiliate')), ('alum', ('alum')), ('library-walk-in', ('library-walk-in')), ('researcher', ('researcher')), ('retired', ('retired')), ('emeritus', ('emeritus')), ('teacher', ('teacher')), ('registered-reader', _('registered-reader')) )
LDAP_SERVERInformation de connection au serveur LDAP{'url': '', 'port': 389, 'use_ssl': False}
AUTH_LDAP_BIND_DNIdentifiant (DN) du compte pour se connecter au serveur LDAP''
AUTH_LDAP_BIND_PASSWORDMot de passe du compte pour se connecter au serveur LDAP''
AUTH_LDAP_USER_SEARCHFiltre LDAP permettant la recherche de l'individu dans le serveur LDAP('ou=people,dc=univ,dc=fr', "(uid=%(uid)s)")
USER_LDAP_MAPPING_ATTRIBUTESliste de correspondance entre les champs d'un compte de Pod et les champs renvoyés par le LDAP{ "uid": "uid", "mail": "mail", "last_name": "sn", "first_name": "givenname", "primaryAffiliation": "eduPersonPrimaryAffiliation", "affiliations": "eduPersonAffiliation" }
USE_SHIBUtiliser l'authentification ShibbolethFalse
SHIB_NAMENom de la fédération d'identité utilisée""
SHIBBOLETH_ATTRIBUTE_MAPMapping des attributs entre shibboleth et la classe utilisateur
SHIBBOLETH_ATTRIBUTE_MAP = {
    "shib-user": (True, "username"),
    "shib-given-name": (True, "first_name"),
    "shib-sn": (True, "last_name"),
    "shib-mail": (False, "email"),
}
REMOTE_USER_HEADER Nom de l'attribut dans les headers qui sert à identifier l'utilisateur connecté avec ShibbolethREMOTE_USER
SHIB_URLURL de connexion à votre instance Shibboleth""
SHIB_LOGOUT_URLURL de déconnexion à votre instance Shibboleth""


Attention, inutile avec la version de Pod > à 2.3 (la librairie de CAS a été mise à jour) :

Si utilisation de l'authentification CAS, il y a une modification à faire dans l'application tierce (django-cas-sso==1.1.7) permettant cette authentification. Cette application est proposée par l'université de Strasbourg mais un problème compatibilité avec Python 3.X empèche sa parfaite utilisation (avec le gateway). Voici la modification à faire :

(django_pod) pod@pod:~/django_projects/podv2$ vim /home/pod/.virtualenvs/django_pod/lib/python3.5/site-packages/django_cas/views.py
[...]L.34
        if gateway:
            """ If gateway, capture params and reencode them before returning a url """
            """ gateway_params = [(REDIRECT_FIELD_NAME, redirect_to), ('gatewayed','true')] query_dict = request.GET.copy() try: del query_dict['ticket'] except: pass query_list = query_dict.items() #remove duplicate params for item in query_list: for index, item2 in enumerate(gateway_params): if item[0] == item2[0]: gateway_params.pop(index) extra_params = gateway_params + query_list extra_params = set(gateway_params).union(set(query_dict.items())) #Sort params by key name so they are always in the same order. sorted_params = sorted(extra_params, key=itemgetter(0)) service += urlencode(sorted_params) """
            gateway_params = { REDIRECT_FIELD_NAME: redirect_to, 'gatewayed':'true'}
            query_dict = request.GET.copy()
            try:
                del query_dict['ticket']
            except:
                pass
            if query_dict.get(REDIRECT_FIELD_NAME):
                del gateway_params[REDIRECT_FIELD_NAME]
            if query_dict.get('gatewayed'):
                del gateway_params['gatewayed']
            query_dict.update(gateway_params)
            service += urlencode(query_dict)
        else:
            service += urlencode({REDIRECT_FIELD_NAME: redirect_to})
[...]
  • Aucune étiquette