L'essentiel de Ruby on Rails

Empêcher les accès non autorisés

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Rails permet de modifier les attributs de données de certains profils utilisateur. Ici, vous ferez en sorte qu'un seul administrateur puisse gérer toutes les catégories.
03:34

Transcription

Comment faire, si vous souhaitez empêcher vos utilisateurs d’accéder à certaines pages de votre site ? Nous aimerions, par exemple, que seul un utilisateur connecté et étant administrateur, puisse accéder à la page catégories qui permet de gérer l’ensemble des catégories des sujets de discussion de notre site. La solution est très simple, il s’agit d’utiliser ici, before_action :authenticate_user! Cette méthode est fournie, automatiquement, par Devise et permettra de vérifier que notre utilisateur est connecté lors de l’accès à cette page. S’il n’est pas connecté, il sera, automatiquement, redirigé vers la page de connexion. Rendez-vous donc, dans votre controller, CateforiesController, rajoutez before_action :verify_admin. Nous n’utilisons pas ici, directement, authenticate_user, en effet, nous souhaitons, également, vérifier que l’utilisateur, actuellement, connecté est, aussi, un administrateur. À l'intérieur de cette méthode, nous allons mettre la méthode authenticate_user! pour vérifier que l’utilisateur est, actuellement, authentifié, puis nous testons si c’est un administrateur. Si ce n’est pas le cas, nous le redirigeons vers la page d’accueil. Avez-vous remarqué la présence de cette méthode is_admin? Cela nous vient, directement, de l’attribut is_admin de notre modèle user. Ruby on rails va, en effet, automatiquement générer la méthode is_admin? puisque is_admin est un boolean. S’il vaut vrai, la condition que vous voyez, ici, sera vérifiée. Avec le unless, nous demandons, ainsi, à ce que l’utilisateur soit, forcément, un administrateur. Vous pouvez du coup, d’ores et déjà, tester. Vous voyez qu’en cliquant, ici, sur le bouton Catégories nous sommes redirigés vers la page de connexion. Si vous voulez mettre un de vos utilisateurs en tant qu’administrateur, vous pouvez utiliser pour cela, la console Ruby on rails. Évidemment, il faudra le faire sans le mode sound box, puisque là, nous voulons que les modifications persistent. Vous pouvez récupérer un utilisateur de cette façon. Notez ici, la méthode find_by_email, qui va, automatiquement, chercher un utilisateur par son email. Ensuite, nous mettons is_admin = true, puis nous sauvegardons. Une fois connecté avec cet utilisateur, qui est désormais administrateur, je peux bien accéder à la page des catégories. Reste à savoir comment notifier l’utilisateur qu'il n’a pas les droits d’accès à la page accédée. Pour cela, nous pouvons utiliser les messages flashs. Peut-être avez-vous, déjà, remarqué ici, les clés notice. Cela aura pour effet de générer ce que l’on appelle un message flash en Ruby on rails. Nous pouvons, également, en générer en dehors de format.html avec le mot-clé flash, puis la clé notice, puis un message. Nous pouvons, également, utiliser la clé alert qui serait, ici, plus juste, puisque le mot-clé alert est plutôt lié à une erreur. Rendons-nous, ensuite, dans notre layout application. Nous allons rajouter ce code. Ici, nous balayons le h flash et récupérons chacun des types de messages, ainsi que le message lui-même. Le code ci-dessous, notamment, avec la class call out nous vient, directement, de la documentation de foundation. En foundation, le mot-clé success est plutôt utilisé, plutôt que notice. Aussi, j’ai rajouté, ici, cette condition. Vous pouvez, désormais, tester sur votre site et voir apparaître les messages flashs. Vous avez vu dans cette vidéo, comment empêcher des utilisateurs non connectés et non administrateurs d’accéder à certaines ressources. Cela a été, également, l’occasion pour moi, de vous présenter les messages flashs en Ruby on rails.

L'essentiel de Ruby on Rails

Concevez des applications web évolutives et intemporelles avec Ruby on Rails. Installez l’environnement, réalisez un projet de stack overflow, enrichissez-le, etc.

6h08 (85 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !