Toute l'actualité du CMS TYPO3, typoscripts, extensions, liens et téléchargements
Nous sommes le 03/09/2010
Protéger l'accès à certaines pages
Nous allons voir dans ce tutorial comment protéger facilement une arborescence de pages dans TYPO3.
Les pages que nous souhaitons protéger l'accès nécessiterons la saisie d'un login/mot de passe pour être visualisées. Ces pages étant en "frontend" (c'est à dire la partie visible de votre site, à l'opposé du backend), il faudra tout d'abord créer les permissions nécessaires. Pour ce faire, vous devez créer des comptes d'utilisateurs. Comme sur Unix, un utilisateur fait partie d'un groupe. Les rêgles en lecture, écriture et executions s'appliquent de la même façon.
1. Créer un utilisateur et un groupe
Vous devez tout d'abord créer un dossier système pour centraliser les groupes et les utilisateurs. Créez ensuite dans ce dossier un groupe web et un utilisateur lambda. Rien de particulier dans cette étape. Créez le groupe, l'utilisateur ensuite et rattacher ce dernier au groupe créé. Voici un aperçu de mon dossier système "Users" :
Vous devez ensuite créer une page d'accueil vers laquelle seront redirigés les utilisateurs après validation de leurs identifiants. Ce n'est évidemment pas obligatoire mais c'est quand même préférable, histoire de leur montrer que l'identification est réussie.
2. Création des pages protégées
Ma page s'appelle "Accueil privé" et il s'agit d'une simple page, à une exception près. Dans les options générales, tout en bas de l'entête de page, j'ai sélectionné mon groupe d'utilisateurs. Vous voyez que c'est plus pratique de rattacher des utilisateurs à un groupe, plutôt que de rattacher tous les utilisateurs dans ce formulaire :) N'oubliez pas de cocher la case "Inclure les sous pages" afin d'éviter de saisir les mêmes options de configuration de groupe d'accès pour les pages situées en dessous de notre page d'accueil.
Vous remarquerez que l'aspect de notre page est différent dans l'arborescence.
Si vous passez votre souris sur cette page, une info bulle apparaitra. Comme vous le voyez ci-dessous, elle comporte l'id de la page et le nom du groupe d'utilisateurs FE (Frontend).
Nous avons également créé une page de login. Voici la procédure.
3. Créer une page pour se connecter
Créez une nouvelle page de type "Hors menu" puis insérez une plugin de type "Formulaire d'identification". Indiquez votre page d'accueil sécurisé dans la partie "Envoyer à la page".
Voici l'aperçu de notre page en FE :
On tente une connexion ? Non, pas encore... Votre gabarit ne connait pas l'endroit où vous stockez vos groupes et vos utilisateurs. On va donc lui indiquer l'emplacement de notre dossier système "Users".
4. Déclarer dans votre gabarit le dossier de stockage des utilisateurs
Cliquez sur template -> Page racine de votre site -> Constant Editor dans la liste déroulante
Renseignez tout en bas l'id de votre dossier système.
Vider vos caches et renseignez vos identifiants dans la boite de login. Si vous revenez sur la page de login, un bouton "Logout" apparaitra.
C'est la preuve que vous êtes connecté ! Vous pouvez également accéder à vos pages protégées. D'ailleurs, petite remarque quand vous êtes connecté. Dans les entêtes de chaque page, options générales, vous avez l'option "Cacher à la connexion". Cette dernière permet de désactiver l'accès à certaines pages après votre connexion. En effet, il serait par exemple superflu d'afficher la page Log-In dans l'arborescence alors que vous êtes déjà connecté. Je vous laisse trouver d'autres raisons :)