php 使用Spatie权限的示例中间件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 使用Spatie权限的示例中间件相关的知识,希望对你有一定的参考价值。

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class ClearanceMiddleware {
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next) {        
        if (Auth::user()->hasPermissionTo('Administer roles & permissions')) //If user has this //permission
    {
            return $next($request);
        }

        if ($request->is('posts/create'))//If user is creating a post
         {
            if (!Auth::user()->hasPermissionTo('Create Post'))
         {
                abort('401');
            } 
         else {
                return $next($request);
            }
        }

        if ($request->is('posts/*/edit')) //If user is editing a post
         {
            if (!Auth::user()->hasPermissionTo('Edit Post')) {
                abort('401');
            } else {
                return $next($request);
            }
        }

        if ($request->isMethod('Delete')) //If user is deleting a post
         {
            if (!Auth::user()->hasPermissionTo('Delete Post')) {
                abort('401');
            } 
         else 
         {
                return $next($request);
            }
        }

        return $next($request);
    }
}

以上是关于php 使用Spatie权限的示例中间件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.7 + Spatie 权限 + JWT 身份验证

为啥我的模型在关系子查询中看不到 spatie 权限特征方法?

如何在登录具有 Spatie 的 Laravel 权限的用户之前检查用户角色?

我如何在 laravel 中为 spatie 包(ACL 管理)中的其他角色分配用户列表权限?

未创建实例 Spatie 角色和权限

text 清除Spatie权限缓存