Maison cadre php Laravel Comment implémenter l'affichage et le masquage basés sur les autorisations des éléments de page dans Laravel

Comment implémenter l'affichage et le masquage basés sur les autorisations des éléments de page dans Laravel

Nov 03, 2023 am 08:35 AM
权限控制 Affichage des éléments de page Élément de page masqué

Comment implémenter laffichage et le masquage basés sur les autorisations des éléments de page dans Laravel

Dans Laravel, il est courant d'implémenter l'affichage et le masquage des éléments de page basés sur les autorisations. Cet article expliquera comment utiliser la bibliothèque de gestion des autorisations de Laravel « spatie/laravel-permission » pour implémenter la fonction de rendu dynamique des éléments de page. Dans le même temps, afin de mieux illustrer le problème, cet article écrira un exemple de programme simple.

1. Installez laravel-permission

Tout d'abord, vous devez installer le package de composition "spatie/laravel-permission" dans le projet Laravel. Utilisez la commande suivante pour installer :

composer require spatie/laravel-permission
Copier après la connexion

Une fois l'installation terminée, vous devez exécuter la migration pour créer la table de gestion des autorisations appropriée :

php artisan vendor:publish --provider="SpatiePermissionPermissionServiceProvider" --tag="migrations"

php artisan migrate
Copier après la connexion

2. Définir les rôles et les autorisations

Dans cet exemple, nous définirons deux rôles, à savoir « Gestion », « Administrateur » et « Utilisateur ordinaire », et donnez à l'administrateur l'autorisation de visualiser toutes les données.

Tout d'abord, vous devez ajouter la configuration du modèle de rôle et d'autorisation dans le fichier config/auth.php :

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => AppModelsUser::class,
    ],

    'roles' => [
        'driver' => 'eloquent',
        'model' => SpatiePermissionModelsRole::class,
    ],

    'permissions' => [
        'driver' => 'eloquent',
        'model' => SpatiePermissionModelsPermission::class,
    ],
],
Copier après la connexion

Ensuite, ajoutez l'association avec les rôles et les autorisations dans le modèle Utilisateur :

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateFoundationAuthUser as Authenticatable;
use SpatiePermissionTraitsHasRoles;

class User extends Authenticatable
{
    use HasFactory, HasRoles;

    //...
}
Copier après la connexion

Ensuite, vous pouvez définir le rôle dans Seeder Et autorisations :

use IlluminateDatabaseSeeder;
use SpatiePermissionModelsPermission;
use SpatiePermissionModelsRole;

class RolesAndPermissionsSeeder extends Seeder
{
    public function run()
    {
        //创建角色
        Role::create(['name' => 'admin']);
        Role::create(['name' => 'user']);

        //创建权限
        Permission::create(['name' => 'view_all_data']);

        //管理员拥有所有权限
        Role::findByName('admin')->givePermissionTo(Permission::all());
    }
}
Copier après la connexion

3. Autorisation et authentification

Ensuite, utilisez la méthode authorize() dans le contrôleur pour déterminer si l'utilisateur dispose d'autorisations spécifiques. Par exemple, la méthode d'index suivante nécessite l'autorisation « view_all_data » :

public function index()
{
    $this->authorize('view_all_data');
    //...
}
Copier après la connexion

De plus, dans la vue, vous pouvez utiliser la méthode can() pour déterminer si l'utilisateur actuel dispose d'une certaine autorisation. Par exemple, dans le code suivant, le bouton « Afficher toutes les données » ne sera affiché que si l'utilisateur dispose de l'autorisation « view_all_data » :

@if(auth()->user()->can('view_all_data'))
    <button>查看所有数据</button>
@endif
Copier après la connexion

Si vous souhaitez un contrôle plus précis, vous pouvez utiliser la méthode role() pour déterminer si l'utilisateur a un certain rôle. Par exemple, dans le code suivant, le « Menu Administrateur » s'affichera uniquement lorsque l'utilisateur a le rôle « admin » :

@if(auth()->user()->hasRole('admin'))
    <menu>管理员菜单</menu>
@endif
Copier après la connexion

4. Rendu dynamique des éléments de la page

Parfois, certains éléments de la page doivent être basés sur les rôles ou les autorisations de l'utilisateur actuel pour un rendu dynamique. Par exemple, vous pouvez définir que seuls les administrateurs peuvent voir le bouton "Supprimer" :

@if(auth()->user()->can('delete_data'))
    <button>删除</button>
@endif
Copier après la connexion

Cependant, s'il y a plusieurs éléments qui doivent être rendus dynamiquement en fonction des autorisations, alors chaque élément doit être jugé individuellement, ce qui conduira au code duplication et augmentation des coûts de maintenance. À ce stade, vous pouvez encapsuler cette fonction dans une commande Blade et la laisser accepter un nom d'autorisation comme paramètre :

Blade::directive('can', function ($expression) {
    return "<?php if(auth()->user()->can({$expression})): ?>";
});

Blade::directive('endcan', function () {
    return "<?php endif; ?>";
});
Copier après la connexion

En utilisant cette commande, vous pouvez restituer dynamiquement les éléments de la page de la manière suivante :

@can('delete_data')
    <button>删除</button>
@endcan
Copier après la connexion

De cette façon, le le code devient plus concis et clair.

Résumé

En utilisant la bibliothèque de gestion des autorisations de Laravel "spatie/laravel-permission", nous pouvons facilement implémenter l'affichage et le masquage des éléments de la page basés sur les autorisations. Dans le même temps, l'encapsulation du code rendu dynamiquement dans les instructions Blade peut simplifier davantage le code et améliorer la lisibilité et la maintenabilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter le contrôle des autorisations et la gestion des utilisateurs dans Uniapp Comment implémenter le contrôle des autorisations et la gestion des utilisateurs dans Uniapp Oct 20, 2023 am 11:15 AM

Comment implémenter le contrôle des autorisations et la gestion des utilisateurs dans uniapp Avec le développement des applications mobiles, le contrôle des autorisations et la gestion des utilisateurs sont devenus une partie importante du développement d'applications. Dans uniapp, nous pouvons utiliser des méthodes pratiques pour implémenter ces deux fonctions et améliorer la sécurité et l'expérience utilisateur de l'application. Cet article présentera comment implémenter le contrôle des autorisations et la gestion des utilisateurs dans uniapp, et fournira quelques exemples de code spécifiques à titre de référence. 1. Contrôle des autorisations Le contrôle des autorisations fait référence à la définition de différentes autorisations de fonctionnement pour différents utilisateurs ou groupes d'utilisateurs dans une application afin de protéger l'application.

Implémentation des autorisations utilisateur et du contrôle d'accès à l'aide de PHP et SQLite Implémentation des autorisations utilisateur et du contrôle d'accès à l'aide de PHP et SQLite Jul 29, 2023 pm 02:33 PM

Implémentation des autorisations utilisateur et du contrôle d'accès à l'aide de PHP et SQLite Dans les applications Web modernes, les autorisations utilisateur et le contrôle d'accès constituent un élément très important. Avec une gestion appropriée des autorisations, vous pouvez garantir que seuls les utilisateurs autorisés peuvent accéder à des pages et des fonctions spécifiques. Dans cet article, nous apprendrons comment implémenter les autorisations utilisateur de base et le contrôle d'accès à l'aide de PHP et SQLite. Tout d'abord, nous devons créer une base de données SQLite pour stocker des informations sur les utilisateurs et leurs autorisations. Ce qui suit est la structure d'une simple table d'utilisateurs et d'une table d'autorisations

Gestion des utilisateurs et contrôle des autorisations dans Laravel : implémentation de plusieurs utilisateurs et attributions de rôles Gestion des utilisateurs et contrôle des autorisations dans Laravel : implémentation de plusieurs utilisateurs et attributions de rôles Aug 12, 2023 pm 02:57 PM

Gestion des utilisateurs et contrôle des autorisations dans Laravel : implémentation de plusieurs utilisateurs et attribution de rôles Introduction : Dans les applications Web modernes, la gestion des utilisateurs et le contrôle des autorisations sont l'une des fonctions très importantes. Laravel, en tant que framework PHP populaire, fournit des outils puissants et flexibles pour implémenter le contrôle des autorisations pour plusieurs utilisateurs et attributions de rôles. Cet article présentera comment implémenter les fonctions de gestion des utilisateurs et de contrôle des autorisations dans Laravel, et fournira des exemples de code pertinents. 1. Installation et configuration Tout d'abord, implémentez la gestion des utilisateurs dans Laravel

Meilleures pratiques pour les fonctionnalités d'autorisations de Laravel : comment contrôler correctement les autorisations des utilisateurs Meilleures pratiques pour les fonctionnalités d'autorisations de Laravel : comment contrôler correctement les autorisations des utilisateurs Nov 02, 2023 pm 12:32 PM

Meilleures pratiques pour les fonctions d'autorisation de Laravel : Comment contrôler correctement les autorisations des utilisateurs nécessite des exemples de code spécifiques Introduction : Laravel est un framework PHP très puissant et populaire qui fournit de nombreuses fonctions et outils pour nous aider à développer des applications Web efficaces et sécurisées. Une fonctionnalité importante est le contrôle des autorisations, qui restreint l'accès des utilisateurs à différentes parties de l'application en fonction de leurs rôles et autorisations. Un contrôle approprié des autorisations est un élément clé de toute application Web pour protéger les données et fonctionnalités sensibles contre tout accès non autorisé.

Comment implémenter la connexion des utilisateurs et le contrôle des autorisations en PHP ? Comment implémenter la connexion des utilisateurs et le contrôle des autorisations en PHP ? Jun 29, 2023 pm 02:28 PM

Comment implémenter la connexion des utilisateurs et le contrôle des autorisations en PHP ? Lors du développement d'applications Web, la connexion des utilisateurs et le contrôle des autorisations sont l'une des fonctions très importantes. Grâce à la connexion utilisateur, nous pouvons authentifier l'utilisateur et effectuer une série de contrôles opérationnels basés sur les autorisations de l'utilisateur. Cet article explique comment utiliser PHP pour implémenter les fonctions de connexion utilisateur et de contrôle des autorisations. 1. Fonction de connexion utilisateur La mise en œuvre de la fonction de connexion utilisateur est la première étape de la vérification de l'utilisateur. Seuls les utilisateurs qui ont réussi la vérification peuvent effectuer d'autres opérations. Voici un processus de mise en œuvre de base de connexion utilisateur : Créer

Comment utiliser l'ACL (Access Control List) pour le contrôle des autorisations dans Zend Framework Comment utiliser l'ACL (Access Control List) pour le contrôle des autorisations dans Zend Framework Jul 29, 2023 am 09:24 AM

Comment utiliser l'ACL (AccessControlList) pour le contrôle des autorisations dans Zend Framework Introduction : Dans une application Web, le contrôle des autorisations est une fonction cruciale. Il garantit que les utilisateurs ne peuvent accéder qu'aux pages et fonctionnalités auxquelles ils sont autorisés à accéder et empêche tout accès non autorisé. Le framework Zend fournit un moyen pratique d'implémenter le contrôle des autorisations, en utilisant le composant ACL (AccessControlList). Cet article explique comment utiliser l'ACL dans Zend Framework.

Comment utiliser le contrôle des autorisations et l'authentification en C# Comment utiliser le contrôle des autorisations et l'authentification en C# Oct 09, 2023 am 11:01 AM

Comment utiliser le contrôle des autorisations et l'authentification en C# nécessite des exemples de code spécifiques À l'ère d'Internet d'aujourd'hui, les problèmes de sécurité des informations font l'objet d'une attention croissante. Afin de protéger la sécurité des systèmes et des données, le contrôle des autorisations et l'authentification sont devenus un élément essentiel des développeurs. En tant que langage de programmation couramment utilisé, C# fournit une multitude de fonctions et de bibliothèques de classes pour nous aider à mettre en œuvre le contrôle des autorisations et l'authentification. Le contrôle des autorisations fait référence à la restriction de l'accès d'un utilisateur à des ressources spécifiques en fonction de son identité, de son rôle, de ses autorisations, etc. Une manière courante d'implémenter le contrôle des autorisations consiste à

Compétences en développement Vue : implémentation du routage dynamique et du contrôle des autorisations Compétences en développement Vue : implémentation du routage dynamique et du contrôle des autorisations Nov 02, 2023 pm 12:12 PM

Compétences en développement Vue : Implémentation du routage dynamique et du contrôle des autorisations Introduction : Dans les applications Web modernes, le routage dynamique et le contrôle des autorisations sont des fonctions essentielles. Pour les applications volumineuses, la mise en œuvre de ces deux fonctions peut améliorer considérablement l’expérience utilisateur et la sécurité. Cet article expliquera comment utiliser le framework Vue pour implémenter des techniques de développement pour le routage dynamique et le contrôle des autorisations. Nous illustrerons l’application spécifique de ces techniques avec des exemples. 1. Routage dynamique Le routage dynamique fait référence à la création et à l'analyse dynamique d'itinéraires en fonction des rôles d'utilisateur ou d'autres conditions lorsque l'application est en cours d'exécution. passer

See all articles