Maison cadre php Laravel Application pratique de la fonction d'autorisation de Laravel : comment implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs

Application pratique de la fonction d'autorisation de Laravel : comment implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs

Nov 02, 2023 am 08:17 AM
权限控制 autorisations laravel organisation d'utilisateurs

Application pratique de la fonction dautorisation de Laravel : comment implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs

Application pratique de la fonction d'autorisation de Laravel : comment implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs nécessite des exemples de code spécifiques

Introduction :
Avec le développement rapide des applications Web, le contrôle des autorisations des utilisateurs est devenu une exigence fonctionnelle importante. Laravel, en tant que framework PHP populaire, fournit des fonctions de gestion des autorisations flexibles et puissantes. Cet article explique comment utiliser Laravel pour implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs et donne des exemples de code spécifiques.

1. La nécessité d'un contrôle des autorisations de la structure organisationnelle des utilisateurs
Dans de nombreuses applications, les autorisations des utilisateurs sont généralement attribuées et gérées en fonction de la structure organisationnelle. Par exemple, une entreprise compte plusieurs départements et chaque département compte des employés différents. Dans ce cas, les fonctions à mettre en œuvre sont :

  1. Les administrateurs de département peuvent gérer les employés de leur propre département, mais ne peuvent pas accéder aux informations des autres départements.
  2. Les cadres peuvent accéder et gérer les données de l'ensemble de l'entreprise ; Les employés généraux ne peuvent accéder qu'à leurs propres informations personnelles.
  3. 2. Utilisez la fonction de gestion des autorisations de Laravel
Le framework Laravel dispose d'un ensemble complet de fonctions de gestion des autorisations intégrées qui peuvent répondre aux besoins ci-dessus. Ce qui suit explique comment utiliser la fonction d'autorisation de Laravel pour implémenter le contrôle des autorisations de la structure organisationnelle des utilisateurs.


Installez le plug-in de gestion des autorisations de Laravel
    Tout d'abord, installez le plug-in de gestion des autorisations dans le projet Laravel. Les plug-ins couramment utilisés sont spatie/laravel-permission et laravel-permission. Ici, spatie/laravel-permission est utilisé comme exemple de démonstration. Exécutez la commande suivante dans la ligne de commande pour installer :

  1. composer require spatie/laravel-permission
    Copier après la connexion
  2. Ensuite, ajoutez la configuration suivante dans le fichier config/app.php :
'providers' => [
    // ...
    SpatiePermissionPermissionServiceProvider::class,
],

'aliases' => [
    // ...
    'Permission' => SpatiePermissionFacadesPermission::class,
]
Copier après la connexion

Enfin, exécutez la commande de migration de base de données pour créer les tables de données requises :

php artisan migrate
Copier après la connexion

Créer un modèle d'utilisateur, de rôle et d'autorisation
    Dans Laravel, trois modèles doivent être créés pour implémenter la gestion des autorisations : Utilisateur (utilisateur), Rôle (rôle) et Autorisation (autorisation). Créez un modèle utilisateur ici et utilisez le plugin spatie/laravel-permission pour gérer les rôles et les autorisations. Exécutez la commande suivante pour générer ces modèles :

  1. php artisan make:model User
    php artisan make:model Role
    php artisan make:model Permission
    Copier après la connexion
  2. Ensuite, ajoutez le code suivant dans le modèle utilisateur généré :
<?php

namespace App;

use IlluminateNotificationsNotifiable;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateDatabaseEloquentRelationsBelongsToMany;
use SpatiePermissionTraitsHasRoles;

class User extends Authenticatable
{
    use Notifiable, HasRoles;

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

Créez des modèles de département et d'employé
    Afin de mettre en œuvre la structure de l'organisation utilisateur, vous devez également créer un département et les modèles d'employés. Exécutez la commande suivante pour générer ces modèles :

  1. php artisan make:model Department
    php artisan make:model Employee
    Copier après la connexion
  2. Ensuite, ajoutez le code suivant dans le modèle Department :
<?php

namespace App;

use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentRelationsHasMany;

class Department extends Model
{
    // ...

    public function employees(): HasMany
    {
        return $this->hasMany(Employee::class);
    }
}
Copier après la connexion

Ajoutez le code suivant dans le modèle Employee :

<?php

namespace App;

use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentRelationsBelongsTo;

class Employee extends Model
{
    // ...

    public function department(): BelongsTo
    {
        return $this->belongsTo(Department::class);
    }
}
Copier après la connexion

Définissez les rôles et les autorisations
    Selon les exigences ci-dessus , nous devons définir trois rôles : les administrateurs de service, les cadres et les employés ordinaires. Créez une table de rôles dans la base de données, puis utilisez la commande de migration fournie par Laravel pour générer la table de données du rôle :

  1. php artisan make:migration create_roles_table --create=roles
    php artisan migrate
    Copier après la connexion
  2. Exécutez la commande suivante pour ajouter ces trois rôles :
php artisan permission:create-role department_manager
php artisan permission:create-role executive
php artisan permission:create-role employee
Copier après la connexion

Ensuite, nous devons également définir certaines autorisations . Créez une table d'autorisations dans la base de données, puis utilisez la commande de migration pour générer une table de données d'autorisations :

php artisan make:migration create_permissions_table --create=permissions
php artisan migrate
Copier après la connexion

Exécutez la commande suivante pour ajouter des autorisations :

php artisan permission:create-permission manage_department
php artisan permission:create-permission manage_employee
Copier après la connexion

Attribuez des rôles et des autorisations
    Afin d'implémenter le contrôle des autorisations, nous devons attribuer des rôles et des autorisations aux utilisateurs et départements correspondants. Voici quelques exemples de codes :

  1. use AppUser;
    use AppRole;
    use AppPermission;
    use AppDepartment;
    use AppEmployee;
    
    // 创建一个部门管理员用户
    $user = User::create([
        'name' => '部门管理员',
        'email' => 'manager@example.com',
        'password' => bcrypt('password'),
    ]);
    
    // 创建一个部门
    $department = Department::create([
        'name' => '销售部门',
    ]);
    
    // 给用户分配部门管理员角色
    $user->assignRole('department_manager');
    
    // 将部门管理员角色与权限关联起来
    $role = Role::findByName('department_manager');
    $role->givePermissionTo('manage_department');
    
    // 将部门管理员与部门关联起来
    $employee = Employee::create([
        'name' => '张三',
        'department_id' => $department->id,
    ]);
    Copier après la connexion
  2. 3. Exemple de code de contrôle des autorisations
Maintenant que nous avons terminé les paramètres de base de la gestion des autorisations, nous pouvons commencer à configurer le code pour le contrôle des autorisations. Voici un exemple de code :


Les administrateurs de département peuvent gérer les employés de leur propre département, mais ne peuvent pas accéder aux informations des autres départements.
  1. public function index()
    {
        $user = Auth::user();
        $department = $user->employee->department;
    
        // 部门管理员只能查看本部门的员工列表
        $employees = $department->employees;
    
        return view('employees.index', compact('employees'));
    }
    Copier après la connexion
Les dirigeants peuvent accéder aux données et les gérer dans toute l'entreprise.
  1. public function index()
    {
        $user = Auth::user();
    
        // 高管可以查看所有部门的员工列表
        $employees = Employee::all();
    
        return view('employees.index', compact('employees'));
    }
    Copier après la connexion
Les employés ordinaires ne peuvent accéder qu'à leurs propres informations personnelles.
  1. public function show($id)
    {
        $user = Auth::user();
    
        // 普通员工只能查看自己的信息
        $employee = Employee::where('id', $id)
                            ->where('user_id', $user->id)
                            ->firstOrFail();
    
        return view('employees.show', compact('employee'));
    Copier après la connexion

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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 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 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 à

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 Route Navigation Guard pour implémenter le contrôle des autorisations et l'interception d'itinéraire dans Uniapp Comment utiliser Route Navigation Guard pour implémenter le contrôle des autorisations et l'interception d'itinéraire dans Uniapp Oct 20, 2023 pm 02:02 PM

Comment utiliser les gardes de navigation d'itinéraire pour implémenter le contrôle des autorisations et l'interception d'itinéraire dans uniapp Lors du développement de projets uniapp, nous rencontrons souvent le besoin de contrôler et d'intercepter certains itinéraires. Pour atteindre cet objectif, nous pouvons utiliser la fonction de garde de navigation d'itinéraire fournie par uniapp. Cet article expliquera comment utiliser les gardes de navigation d'itinéraire pour implémenter le contrôle des autorisations et l'interception d'itinéraire dans uniapp, et fournira des exemples de code correspondants. Configurez le garde de navigation d'itinéraire. Tout d'abord, configurez l'itinéraire dans le fichier main.js du projet uniapp.

See all articles