Fichiers et contenus privés/publics - tout ce qu'il faut savoir

Contributeurs

Statut du tutoriel : 

À jour

Catégorie du tutoriel : 

Niveau du tutoriel : 

Modules utilisés : 

Pendant ce didacticiel, on parlera souvent de contenu et fichier : sachez donc que le contenu est la page ou l'article (ou tout autre type de contenu perso) que vous lisez ; un fichier peut donc être attaché à cet article (ou page ou ...) via un champ spécifique.
Un fichier lié à un contenu n'a pas forcément les mêmes droits que ceux du contenu : on peut par exemple ne pas pouvoir consulter un article mais pouvoir télécharger ses fichiers joints même si on connait leur url.
Le but de ce tutoriel et de donner un exemple de comment protéger le contenu ET/OU les fichiers sur votre site drupal 7.

Avant d'aller plus loin : vous devez d'abord avoir configurer le module CAS, si ce n'est pas encore le cas, suivez le tutoriel qui concerne l'utilisation de ce module (qui permet aux Centraliens de se connecter à votre site).

Protéger le contenu

Si on veut que tout le site ne soit accessible qu'aux gens de Centrale (Attention, les fichiers seront toujours accessibles pour tout le monde)

  • Aller dans Menu d’administration : Configuration > Personnes > CAS (ou onglet "Configuration"> "CAS Settings").
  • Dans la sous partie Redirections puis Pages spécifiques ajouter : *
  • Dans la sous partie Redirections puis Pages exclues, ajouter dans une nouvelle ligne : user

Si on veut que certaines pages ne soient accessibles qu'aux gens de Centrale (les fichiers seront toujours accessibles pour tout le monde)

  • Aller dans Menu d’administration : Configuration > Personnes > CAS
  • Dans la sous partie Redirections puis Pages spécifiques ajouter les url des pages concernées.
  • Par exemple, si l'url des dites pages est "example.com/node/5" ou encore "example.com/content/note_privee", on ajoutera dans le champ texte les lignes suivantes :
    • node/5
    • content/note_privee

ATTENTION

content/note_privee n'est qu'une réécriture du chemin original de cette page : si vous passez la souris sur le lien "modifier" de la page vous aurez un lien du genre "example.com/node/7/edit", il vaut mieux utiliser node/7 à la place de content/note_privee mais les deux méthodes marchent bien.

Protéger les fichiers

  • Aller dans :  Menu d’administration : Configuration > Media > Système de fichier
  • Copier le contenu du champ Chemin du système public de fichier et le coller dans le champ Chemin du système privé de fichier puis ajouter /private

Exemple : si  la valeur du champ Chemin du système public de fichier est : sites/assos.centrale-marseille.fr.example/files, alors la valeur qu'on propose pour le champ Chemin du système privé de fichier est : sites/assos.centrale-marseille.fr.example/files/private

  • Cliquer sur Enregistrer, il vous réaffiche la même page. Dans Méthode de téléchargement par défaut choisir la valeur Les fichiers privés locaux sont servis par Drupal

L'idée est que tous les fichiers ajoutés dans ce répertoire via un champ seront protégeables (en masse ou un par un !) (via CAS encore)

Note : c'est une méthode adaptée à ECM plus facile à configurer que la méthode de base de Drupal...

Ajouter un champ de type fichier nommé par exemple fichier privé à un de vos types de contenu (page de base par exemple). Pour cela aller dans Menu d’administration : Structures > Types de contenu et cliquer sur Gérer les champs à coté de Page de base et enregistrer.

Dans les paramètres de réglage du champ, choisissez la méthode Fichiers privés  et enregistrer les paramètres.

Optionellement vous pouvez renseigner le champ Répertoire du fichier par le nom du sous répertoire à peupler par les fichiers transférés depuis ce champ ; dans ce cas il vous suffit de replir par un nom simple comme fichiers_adherents.

Protéger tous les fichiers

Aller dans  Menu d’administration : Configuration > Personnes > CAS
Dans la sous partie Redirections puis Pages spécifiques ajouter : system/files/sites/*/files/private/*

Protéger un fichier en particulier

Afficher la page à laquelle le fichier est attaché et copier le lien du fichier qui vous intéresse : si c'est par exemple : example.com/system/files/sites/assos.centrale-marseille.fr.example/files/private/annales/annuaire_des_assos.pdf

Aller dans  Menu d’administration : Configuration > Personnes > CAS
Dans la sous partie Redirections puis Pages spécifiques ajouter : system/files/sites/*/annuaire_des_assos.pdf

Vous voulez que les fichiers flv et mp4 ne soient téléchargeables que par les Centraliens ?

Assurez vous que la méthode que vous utilisez pour transférez ces fichiers est de type privée (tout ce qu'on a expliqué jusqu'à maintenant...via un champ ...)
Aller dans  Menu d’administration : Configuration > Personnes > CAS
Dans la sous partie Redirections puis pages spécifiques ajouter : 

  • system/files/sites/*.flv
  • system/files/sites/*.mp4