Créer un gestionnaire de collections avec Symfony3

Étudier une règle de gestion sur l'objet

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vos objets sont des modèles qui représentent de vrais objets de la vie courante et au format numérique. Ils peuvent aussi prendre en charge de la logique métier qui leur est propre.
06:57

Transcription

Alors, pour terminer ce chapitre un peu de sécurité, avec surtout l'utilisation de la session, j'ai envie de vous montrer comment on va implémenter un peu de logique sur les objets et comment on va pouvoir vérifier certaines choses. Et comme ça, ça vous donnera un petit peu de granularité sur vos objets et vous comprendrez surtout quel objet peut porter de la logique et qu'on peut l'utiliser comme un vérificateur d'information. Je m'explique. Je suis bien authentifié en tant qu'admin. C'est génial, ça veut dire quoi ? Ça veut dire que je peut supprimer les objets. Oui, mais attendez, il y a des objets qui n'appartiennent pas à [inaudible]. Eh bien, ça, on pourrait le vérifier aussi. C'est-à-dire qu'on pourrait à partir du principe que l'utilisateur admin a le droit de supprimer les objets, mais qui lui appartiennent, à lui. D'ailleurs ça pourrait carrément être ici un « Role user » et pas un « Rol Admin », c'est-à-dire que l'utilisateur, il peut avoir tous les objets des collections, mais il ne peut supprimer que les siens. Alors pour supprimer que les siens, c'est bien, parce que nous ici, en base on en a trois qui sont nuls, donc ils ne sont pas à nous. Ce qui fait qu'on pourrait très facilement vérifier qu'ils sont à nous [inaudible]. Alors, comment on va faire ça ? D'abord la première chose. Vérifiez bien que voua avez créé cette partie-là du Flashbag, donc avec les erreurs, c'est parce qu'on va les utiliser. On va l'utiliser comme, on va faire porter de la logique à l'objet. Donc on va aller chercher notre item et on va lui ajouter une publique méthode, une publique fonction, et on va l'appeler « is autor ». Et qu'est-ce qu'elle va faire ? Elle va prendre un utilisateur. L'utilisateur on va lui passer. Et on va lui passer un vrai « user ». Comme ça la vérification sera faite déjà qu'on ne lui passe pas un objet d'un autre type que « user ». Pensez bien, ça c'est important à types les informations et à typer les bonnes informations. Sinon vous allez avoir de petits problèmes de typage. Comme vous aurez fait ça, on va simplement faire un « return » et de quoi ? De « this user », de « user » qui se trouve actuellement sur l'entité. qui doit être égal à ce qu'on va lui fournir , c'est-à-dire « user get id ». Et là, vous serez bon, vous allez simplement demander à l'objet de s'identifier en tant que objet appartenant à l'utilisateur. Maintenant comment je vais le gérer ? Je vais le gérer dans deux parties différentes. Et la première ça va être de le gérer ici sur le « remove ». Je vais bloquer cette possibilité-là. On va donc demander ici à l'item de se vérifier. Et ça c'est simple parce que quand vous allez ici récupérer votre item, vous récupérez un objet item qui bénéficie bien sûr de tous les getteurs-faiteurs que vous avez ici. Mais aussi de toutes les méthodes objets que vous allez définir à l'intérieur et ça, c'est très intéressant parce que du coup vous allez pouvoir faire porter de la logique à vos objets. Comment récupère l'utilisateur ici ? C'est facile en fait, juste en « getuser ». Et ici, si ça nous revoit [inaudible], ça veut dire que du coup, on va pouvoir effectivement supprimer l'objet sans aucun problème. On va lui mettre aussi, pourquoi pas, un petit message sur la session. On va simplement démarrer session comme on l'a déjà fait plus haut, et sur le Flashbag « Session getFlashbag ». On va venir lui ajouter un message, dont les messages eh bien de succès qu'on a nous nommé « info » Donc, on va lui mettre sur « infos, objet, supprimer », voilà. Par contre, si ce n'est pas son objet, on va lui mettre un petit « else » et on va faire la même chose que ça. Mais on va lui dire attention, ce n'est pas ton objet. donc, cet objet n'est pas à vous. Objet appartenant à un autre utilisateur. Donc là, on ne pourra pas le supprimer. Quand vous aurez réécrit cette partie-là, vous aurez bloqué ici la possibilité pour un utilisateur de supprimer les objets qui ne lui appartiennent pas. Il n’aura pas le droit de les supprimer. Alors attention si vous voulez que ce soit des erreurs, il faut les mettre dans « errors ». Et là, vous aurez bien un message qui sera dans « errors ». Alors, moi, ça s'affiche assez mal. On va aller vérifier le « Templates ». Effectivement [inaudible]. « Danger », attention. Voilà, je ne peux pas le supprimer, je n'ai pas le droit de faire ça. Ni suit là, ni suit là, ils ne sont pas à moi. Maintenant, ça ce n'est pas mal. Mais est-ce qu'on ne pourrait pas les bloquer aussi dans le « Templates » directement, au niveau de la liste. Ce qu'on va faire, c'est qu'on va passer cette partie-là ici, sur une nouvelle ligne, parce que ce n'est pas très lisible comme ça, on va plutôt le mettre à l'intérieur de « end if » proprement. Pensez quand même à espacer un petit peu vos « Templates twix» nous, à un moment vous n'allez pas y arriver. Il faut savoir que vous avez le droit d'implémenter 2 méthodes particulières. On pourrait lui dire qu'effectivement, s'il a le « role user », il peut supprimer ou en tout cas, il peut y avoir le lien de suppression, mais on pourrait aussi lui dire que si l'objet ne lui appartient pas, il n'affiche pas le lien. Tout simplement et ça c'est facile à faire, pourquoi ? Parce que l'item, vous l'avez ici et vous pouvez cherchez aussi un «is autor » qu'on a référencé. et on peut lui fournir l'utilisateur avec « up point user ». Alors attention, quand vous voulez utiliser le « or » ici, en Twig, vous allez être obligé de vérifier « if » avec « or ». Alors, là, ça marche pas mal, le problème c'est que ici, moi, j'ai le « role admin » donc ça fonctionne bien. Et surtout il va passer dans cette méthode avant l'autre. Donc là, on est obligé comme ça, alors soit d'inverser les méthodes, et à ce moment-là, c'est forcément la première qui passera avant la deuxième, et là, ça devrait être intéressant. Mais le souci c'est que, voyez, ça va être embêtant. Donc n'hésitez pas à utiliser « end » , on a le « end », voilà. Le « end » va nous permettre de faire les choses. Donc, vous avez tous les opérateurs possibles pour créer évidemment des règles particulières. Ne restez pas bloqué, il y a tout ce qu'il faut en Twig. Vous pouvez créer des règles. Donc là, il faut obligatoirement que ça soit mon objet, qu'en plus j'ai le « role user » pour pouvoir supprimer. J'ai puis le lien. C'est bien de faire ça, pourquoi ? Parce que en fait, le lien de « remove ». En réalité ici, c'est qu'un lien, c'est que c'est facile à [inaudible]. Moi, je récupère ce lien-là, avec le « remove 10 » ou le « remove 8 » et je me dis, attends, c'est facile, j'ai juste à faire item « Flash remove », « Flash 9 » et ça fonctionne tout à fait bien, sauf que, là, j'ai pas le droit [inaudible], ça crache, ça crache, il ne va pas réussir à le faire. Il ne réussit pas à récupérer l'item, parce que le 9, le 9 n'existe plus, évidemment c'est facile, mais si je le fais sur 8, par exemple, il va [inaudible] et on va avoir le message. Donc, pensez à sécuriser vos applications à différents niveaux, c'est très important. Faites le pas à un seul endroit, [inaudible] c'est bon, c'est facile, non, non. Une application Web, c'est que des URI, c'est facile à [inaudible]. Donc, n'hésitez pas, faites de la sécurité à plusieurs niveaux. Dans l'objet, au niveau du contrôleur, au niveau du « Templates Twig » vous êtes tranquille.

Créer un gestionnaire de collections avec Symfony3

Développez une application de gestion de ressources avec Symfony. Prenez en main le DQL (Doctrine Query Language) ainsi que les formulaires, la sécurité, les tests, etc.

2h12 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :19 avr. 2016

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 !