Laravel 5

Laravel permissions

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    5

    Bonjour, je suis un jeune développeur camerounais qui s'est lancé depuis peu dans l'apprentissage du framework php laravel. Je suis confronté à certains problèmes depuis peu j'aimerais attribuer des roles et des permissions à des utilisateurs et je ne sais pas vraiment par où commencer. Merci d'avance pour vos réponses

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2274

    Bonjour,

    Bienvenue dans le monde de Laravel !

    Pour les rôles et permissions tout dépend de la complexité de ce qu'on veut mettre en place. En général on opte pour un package comme celui-ci. Il existe aussi des packages d'administration assez complets qui intègrent déjà cette fonctionnalité comme Voyager.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    5

    Merci bien je suis déjà tombé sur spatie/laravel-permission mais je n'arrive pas vraiment à bien mettre ça en place! En ce qui concerne voyager je l'ai utilisé mais je n'ai pas une totale liberté dessus. J'aimerais pouvoir créer mon propre système d'administration afin de bien comprendre comment fonctionne laravel.

  • Avatar de LaraSharp
    Membre depuis :
    03/01/2018
    Messages :
    5

    Spatie Permission est très facile à utiliser.
    Il y a juste le package à installer, suivre un peu la doc puis :

    tu mets dans la table role, en

    • id : 1
    • name : 'administrateur'
    • guard_name : 'web'

    tu mets dans la table model_has_role :

    • Role_id = 1 (= ton role administrateur)
    • Model_id = 1 (pour ton user avec l'id 1)
    • Model_type : App\User (par défaut)

    Ton user avec l'Id 1 aura donc le role administrateur.

    Après dans une fonction d'un controller, tu as juste à rajouter

    if(Auth::user()->hasRole('administrateur'))
    {
    // fera uniquement quelque chose si ton user connecté à le role administrateur
    }

    Tu peux aussi mettre les droits sur tout le controller avec un middleware, les vues, routes,....
    Pour les permissions, c'est un peu dans le même style que les roles.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    5

    Merci pour vos réponses j'ai trouvé un package Caffeinated\Shinobi qui m'a permis de gérer les rôles et les permissions. Cependant j'ai un autre problème. J'utilise le tableau de bord jeroennoten conçu à partir de adminlte et j'aimerais cacher des liens aux utilisateurs n'ayant pas de droits. Je me suis rendu dans le fichier config/adminlte.php et j'ai rajouté 'can'
    [
    'text' => 'Gérer les utilisateurs',
    'url' => 'user/',
    'can' => 'user.index',
    'icon' => 'users',
    ],

    'can' me permet bien de cacher le lien pour les utilisateurs n'ayant pas les accès mais il le fait aussi pour les utilisateurs ayant les accès.

Vous ne pouvez pas répondre à ce sujet.