Gestion des rôles avec Laravel

Поделиться
HTML-код
  • Опубликовано: 18 авг 2021
  • Envie d'apprendre à gérer des rôles avec Laravel 8 ? Bienvenue dans le tutoriel vidéo « Gestion des rôles avec Laravel » de Ludovic Guénet, sur Nord Coders. nordcoders.fr
    Découvrez mes billets et le reste des informations ici : nordcoders.fr/blog
    Dans cette vidéo, nous allons créer un middleware personnalisé qui va nous permettre de donner accès aux utilisateurs suivant leur(s) rôle(s). Dans un premier temps nous voyons avec 1 seul rôle puis nous verrons la vérification avec des rôles multiples.
    ➤ Pour avoir accès à la documentation, rendez-vous sur le site officiel du framework : laravel.com/docs/8.x
    J'ai créé Nord Coders pour partager mon savoir avec les développeurs. On construit ensemble des projets solides de manière méthodique et toujours dans l'entraide. C'est comme ça que je vois ma communauté et qu'elle a pu devenir ce qu'elle est aujourd'hui.
    Découvrez notre site : nordcoders.fr
    Suis-moi sur les réseaux sociaux !
    Discord : / discord
    LinkedIn : / ludoguenet
    Twitter : / nordcoders
    Nord Coders, c'est une communauté frénétique de développeurs web qui s'investissent à fond.
  • НаукаНаука

Комментарии • 33

  • @Dzayer-tv
    @Dzayer-tv 2 года назад

    J'ai attendu tellement longtemps cette vidéo

  • @StudioLaPomme
    @StudioLaPomme 2 года назад +1

    Salut, tres bonne video!
    Et qui me fait m'interroger sur la difference entre foreignId() et foreignIdFor() que je vois que tu utilises mais ne trouve aucune infos dessus dans la doc Laravel.
    J'ai vu qu'en plus du nom de colonne, on lui passe le modèle, mais ca change quoi concretement?
    Merci pour ton taf, good job!

    • @LaravelJutsu
      @LaravelJutsu  2 года назад

      Salut ! Effectivement je pensais l'avoir vu sur la doc ! Mais on passe un modèle à la fonction et ça va te créer une clé étrangère unsignedBigInteger (donc un entier assez conséquent non nul) qui aura le nom qui va bien avec la contrainte. user_id ou role_id par exemple. La contrainte ça veut dire que si tu veux supprimer un rôle qui est attribué à un utilisateur, tu ne pourras pas car il se retrouverait avec un rôle inexistant. C'est une sécurité :) plus d'informations sur les contraintes : laravel.com/docs/8.x/migrations#foreign-key-constraints

    • @StudioLaPomme
      @StudioLaPomme 2 года назад

      ​@@LaravelJutsu Tu veux dire que :
      $table->foreignIdFor('role_id') ;
      est l'equivalent de :
      $table->foreignId('role_id')->constrained();
      qui lui est equivalent à :
      $table->unsignedBigInteger('role_id');
      $table->foreign('role_id')->references('id')->on('role');
      ?
      Je dois rater un truc parce que je ne capte pas l'utilité de foreignIdFor() si ce n'est de raccourcir le code avec une méthode magique.

    • @LaravelJutsu
      @LaravelJutsu  2 года назад +2

      @@StudioLaPomme c'est ça ! (C'est on('roles') d'ailleurs ;) ) c'est le raccourci d'un raccourci en gros, mais il faut commencer par l'écriture complète pour être sûr et comprendre ce que l'on fait !

  • @myosotisalderson
    @myosotisalderson 6 месяцев назад

    Merci ;)

  • @tenchigreed
    @tenchigreed 2 года назад

    Super interessent

  • @stevenakoti7982
    @stevenakoti7982 2 года назад

    J'aimerais savoir, si je comprends bien, la Route:middleware est celle utilisée pour les gestion de pluseurs rôles c'est ça?

  • @thebily
    @thebily 2 месяца назад

    Bonjour en peut adapté a laravel 11 ? vu que le fichier Kernel.php n'est plus j'ai tester d'ajouter mon Middleware a bootstrap/app.php " \App\Http\Middleware\AtributionRole::class," mais j'ai des erreurs

  • @stevenakoti7982
    @stevenakoti7982 2 года назад

    J'ai un petit souci chez moi, on me sort l'erreur suivante >, je ne sais pas pourquoi alors que j'ai bien créé la table. Une question, j'aimerais savoir si on doit donc créer autant de pages d'autorisations que de rôles, et donc autant de routes

    • @infodev5859
      @infodev5859 Год назад

      bonjor changer le nom de ce middleware par exemple avec CheckRole va donc travail bien et regard dans lafinction de route est $resuest sans passer parenthese

  • @redmoonfamily2025
    @redmoonfamily2025 Год назад

    Bonjour je suis débutant est ce que je peux utiliser cette méthodologie sur laravel 10

  • @sebastiennetgmail
    @sebastiennetgmail 2 года назад

    Bonjour, est il possible d'ajouter des enregistrements dans la table pivot via DatabaseSeeder malgré qu'elle n'a pas de model ?

    • @LaravelJutsu
      @LaravelJutsu  2 года назад

      Tu peux créer un model qui représente la table pivot :) et sinon oui tu peux laravel.com/docs/9.x/database-testing#pivot-table-attributes

  • @ibtech960
    @ibtech960 2 года назад

    merci pour la vidéo !!!!!!

  • @zakariaee.3197
    @zakariaee.3197 10 месяцев назад

    Merci bcp monsieur

  • @mouradeljayi584
    @mouradeljayi584 2 года назад

    Mercii encore

  • @adriencollot7503
    @adriencollot7503 2 года назад

    Bonjour super vidéo,
    J'avais une question j'essaie de faire en sorte que une même route soit accessible par deux rôles différents mais cela ne marche pas du tout.
    J'utilise ce que vous avez fait dans votre vidéo pour les utilisateurs à un seul role.
    Est-ce que vous auriez une idée de comment faire ?

    • @LaravelJutsu
      @LaravelJutsu  2 года назад

      Merci pour ton commentaire. il faudra créer un middleware spécifique et faire ta condition à l'intérieur. C'est ce que j'aurai fait idéalement.

    • @adriencollot7503
      @adriencollot7503 2 года назад

      @@LaravelJutsu oui j'ai essayé ça avec 'role: admin|test' mais ça marchait pas

    • @adriencollot7503
      @adriencollot7503 2 года назад

      Ah non tu veux dire modifier ensureUserHasRole ?
      Parce que si c'est ça là j'ai vraiment pas d'idée de comment faire.

  • @alaind.381
    @alaind.381 2 года назад +1

    Merci pour la vidéo.
    Comment fait-on si on veut par ex avoir deux menus: un pour l'admin et un pour l'éditeur ?
    Je veux dire on a le layout de base mais dans blade je voudrais pouvoir dire:
    si c'est admin alors @include(menu_amin) sinon @include(menu_editeur).
    Merci ;-)

    • @LaravelJutsu
      @LaravelJutsu  2 года назад

      Le mieux est d'utiliser 2 layouts, de créer des routes admin et des routes users, de rediriger les bon rôles sur les bons templates et enfin de protéger tout ça avec des middlewares / Gates :)
      Regarde par là : ruclips.net/video/tafzPLRP92I/видео.html

  • @genova9901
    @genova9901 Год назад

    Merci pour la vidéo.
    Je voulais poser une question...
    Si la restriction de l'accès à certaines routes se fait en vérifiant le rôle des utilisateurs, à quoi servent les permissions et comment les utilise t-on dans le cadre des restrictions?

    • @LaravelJutsu
      @LaravelJutsu  Год назад

      Il sera plus judicieux d'attendre une prochaine vidéo sur les Rôles et Permissions qui devraient sortir prochainement !

  • @Dzayer-tv
    @Dzayer-tv 2 года назад

    Merci

  • @yadikone7004
    @yadikone7004 2 года назад

    Qu’est ce qui peut faire que après la première application les restrictions soient appliquées à Tout le Monde « Rôle admin comme rôle…)

    • @LaravelJutsu
      @LaravelJutsu  2 года назад +1

      Il faut indiquer tous les rôles dans le middleware et grouper les routes concernées

    • @yadikone7004
      @yadikone7004 2 года назад

      @@LaravelJutsu c’est ce que j’ai fais pourtant mais bizarrement ils bloquent les admins et non admin à ces routes🤔

    • @LaravelJutsu
      @LaravelJutsu  2 года назад

      @@yadikone7004 fais des dd() dans le middleware pour voir s'il renvoie true ou false

  • @CHARISMA_LORE
    @CHARISMA_LORE Год назад

    graphikart ?

    • @LaravelJutsu
      @LaravelJutsu  Год назад +1

      Non?

    • @CHARISMA_LORE
      @CHARISMA_LORE Год назад

      @@LaravelJutsu ah autant pour moi la voix ressemblais, sinon jtm mec