Maison développement back-end tutoriel php Politique de porte de contrôle des autorisations Laravel

Politique de porte de contrôle des autorisations Laravel

Jun 05, 2018 am 09:46 AM
gate laravel

Cet article présente principalement la politique de contrôle des autorisations de Laravel, qui a une certaine valeur de référence. Maintenant, je la partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

À propos des autorisations

Essentiellement, il décrit le jugement de démarrage ou non de la production sur la base d'une unité logique exécutable.

Définition Il doit y avoir une instance d'utilisateur ou un paramètre d'identification unique, et la ressource d'utilisation qui lui est associée. Habituellement, une fermeture, une fonction ou une méthode

est utilisée pour appeler le descripteur d'unité logique d'autorisation, l'objet d'opération d'autorisation de paramètre, les informations utilisateur.

Origine

Le contrôle d'autorisation le plus basique, opérateur ternaire ? :. Jugement évidemment conditionnel, puis passez à la logique d'exécution correspondante.

L'idée de Laravel est de séparer la logique d'exécution (code de production) et l'autorisation (logique de jugement conditionnel). Concentrez-vous sur la génération des conditions, et de manière générale, renforcez la logique d'autorisation (ce qui est très utile pour les autorisations complexes). Postulat : tous les codes sont démarrés une fois l'enregistrement du service terminé. Le code suivant sera donc enregistré. Son but est de trouver le corps logique qui autorise véritablement le jugement.

Gate::define('update articles', 'ArticlePolicy@update')
Copier après la connexion
Le premier paramètre est évidemment juste un identifiant d'autorisation (le paramètre handle utilisé pour appeler), et le deuxième paramètre est le corps d'exécution logique de l'autorisation.


Définition de l'autorisation Laravel

Définir l'autorisation dans la méthode

AuthServiceProviderboot

Gate::define('update articles', function ($user, $article) {
    return $user->id == $article->user_id;
});

Gate::define('update articles', 'ArticlePolicy@edit');
Copier après la connexion
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;

class ArticlePolicy
{
    public function update(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }
}
Copier après la connexion
Laravel autorise l'utilisation des

    Façades de portail :
  1. et

    . Gate::allows(&#39;update articles&#39;, $article)Gate::denies(&#39;update articles&#39;, $article)

  2. Le contrôleur introduit le
  3. trait

    AuthorizesRequests

    .

    $this->authorize(&#39;update articles&#39;, $article)

  4. Modèle de lame : directives
  5. et

    . @can(&#39;update articles&#39;, $article)@cannot(&#39;update articles&#39;, $article)

  6. Instances de modèle utilisateur :
  7. et

    . $user->can(&#39;update articles&#39;, $article)$user->cannot(&#39;update articles&#39;, $article)

Politique de Laravel


Afin de définir et d'utiliser facilement l'autorisation, Laravel introduit une politique basée sur Gate. Chaque méthode de la stratégie sera enregistrée avec la description de la méthode gate::define. C'est pourquoi, après avoir utilisé l'enregistrement de la classe de stratégie, même si la logique d'autorisation n'est pas définie avec la façade Gate, la forme Gate::allow('strategy class method') peut toujours être utilisée dans le contrôleur pour effectuer des jugements d'autorisation.


Définissez d'abord la relation de mappage d'autorisation dans l'attribut de tableau

de

AuthServiceProviderpolicies

/**
 * The policy mappings for the application.
 *
 * @var array
 */
protected $policies = [
    Article::class => ArticlePolicy::class,
];
Copier après la connexion
<?php

namespace App\Policies;

use App\User;
use App\Models\Article;
use Illuminate\Auth\Access\HandlesAuthorization;

class ArticlePolicy
{
    use HandlesAuthorization;

    public function create(User $user)
    {
        return true;
    }

    public function delete(User $user, Article $article)
    {
        return $user->id == $article->author_id;
    }

     public function before($user, $ability)
    {
        if($user->isSuperAdmin()){
            return true;
        }
    }
 }
Copier après la connexion
Remarque

 : Policy ajoute simplement un trait

à une classe PHP normale.

HandlesAuthorization Dans Policy, il sera appelé avant que toutes les méthodes ne soient exécutées. Il est souvent utilisé pour gérer la logique d'autorisation de l'administrateur.


Recommandations associées :

Comment Laravel utilise gulp pour créer des ressources frontales

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois 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 obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

Sesame Open Door Exchange Page Web Login Dernière version GATEIO Entrée du site officiel Sesame Open Door Exchange Page Web Login Dernière version GATEIO Entrée du site officiel Mar 04, 2025 pm 11:48 PM

Une introduction détaillée à l'opération de connexion de la version Web Sesame Open Exchange, y compris les étapes de connexion et le processus de récupération de mot de passe.

Le dernier téléchargement de la version de gate.io Le dernier téléchargement de la version de gate.io Mar 05, 2025 pm 07:51 PM

Besoin de télécharger l'application gate.io pour démarrer votre parcours de crypto-monnaie? Ce guide détaille les dernières étapes de téléchargement de la version pour les appareils iOS, Android et Windows. Visitez simplement le site officiel, trouvez le lien de téléchargement et sélectionnez l'option appropriée en fonction de votre appareil. Pour iOS, il ira directement à l'App Store, tandis que les utilisateurs d'Android et de Windows téléchargeront l'APK ou l'installateur pour l'installation manuelle. Une fois installé, vous pouvez lancer l'application et configurer votre compte pour entrer dans le monde de la crypto-monnaie.

Revue du prix historique le plus complet de Bitcoin (la dernière version en 2025) Revue du prix historique le plus complet de Bitcoin (la dernière version en 2025) Mar 05, 2025 pm 08:42 PM

Cet article fournit une revue détaillée de la dernière version du prix historique de Bitcoin en 2025 et a détaillé la tendance des prix de Bitcoin depuis sa naissance en 2009. De son obscurité initiale à un actif numérique mondial, le prix du bitcoin a connu de nombreuses surtensions et a chuté. Nous analyserons les principaux facteurs affectant les fluctuations des prix du bitcoin, y compris le développement technologique, les politiques réglementaires, le sentiment du marché et l'environnement macroéconomique, et faire une vision des tendances futures de développement pour fournir aux lecteurs une référence complète pour comprendre les changements de prix du bitcoin et aider les investisseurs à mieux procéder à des évaluations des risques.

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Application Sesame Open Door Exchange Téléchargement officiel Sesame Open Door Exchange Téléchargement officiel Application Sesame Open Door Exchange Téléchargement officiel Sesame Open Door Exchange Téléchargement officiel Mar 04, 2025 pm 11:54 PM

Les étapes de téléchargement officielles de l'application Sesame Open Exchange couvrent le processus de téléchargement du système Android et iOS, ainsi que des solutions de problèmes courantes, vous aidant à télécharger en toute sécurité et rapidement et à permettre des transactions pratiques de crypto-monnaies.

Site Web de l'application de logiciel de marché gratuit Site Web de l'application de logiciel de marché gratuit Mar 05, 2025 pm 09:03 PM

Cet article présente des applications et des sites Web de logiciels de devis d'actifs numériques gratuits qui peuvent fournir aux investisseurs des informations clés telles que les prix en temps réel, les graphiques de prix, le volume des transactions, les fluctuations, la profondeur du marché et les informations d'information pour aider les investisseurs à prendre des décisions éclairées. Par rapport aux logiciels payants, le logiciel gratuit présente les avantages sans frais, fonctionnalités riches et fonctionnement facile. L'article guide également les utilisateurs comment choisir le bon logiciel de marché et rappelle aux utilisateurs de faire attention aux sources de données, de précision des informations et d'éviter une dépendance excessive, ce qui aide finalement les investisseurs à mieux saisir les tendances du marché des actifs numériques. Vous voulez savoir comment utiliser efficacement les logiciels de marché libre? Lisez le texte intégral rapidement!

See all articles