distilleries/permission-util

提供一套系统来检测用户是否有权限。提供中间件以403限制访问。

v1.11.0 2019-09-10 09:55 UTC

This package is auto-updated.

Last update: 2024-09-10 21:36:05 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Total Downloads Latest Stable Version License

Laravel 5 权限工具

提供一套系统来检测用户是否有权限。提供中间件以403限制访问。

目录

  1. 安装
  2. 基本用法
  3. 中间件

##安装

在你的 composer.json 文件中添加

    "require": {
        "distilleries/permission-util": "1.*",
    }

运行 composer update

将服务提供者添加到 config/app.php

    'providers' => [
        // ...
       'Distilleries\PermissionUtil\PermissionUtilServiceProvider',
    ]

以及 Facade(也在 config/app.php 中)

    'aliases' => [
        // ...
        'PermissionUtil'   => 'Distilleries\PermissionUtil\Facades\PermissionUtil',
    ]

导出配置

php artisan vendor:publish --provider="Distilleries\PermissionUtil\PermissionUtilProvider"

###基本用法 要检查权限,我使用了你应用的 auth。在你的模型中使用 Auth 实现 Distilleries\PermissionUtil\Contracts\PermissionUtilContract 接口,添加 hasAccess 方法来定义用户是否有权限。参数中的键是一个字符串动作,例如 UserController@getEdit

    public function hasAccess($key)
    {
        return true;
    }

如果用户已连接且你的模型没有这个方法,类将返回 true。如果用户未连接,权限工具返回 false。要禁用对连接用户的限制,只需进入配置文件并将 auth_restricted 设置为 false。

你可以使用 Facade 来检测用户是否可以访问

##中间件 该包提供了一种中间件,可以自动检测用户是否可以访问控制器的方法。要启用它,只需在你的 app/Http/Kernel 中添加

    protected $routeMiddleware = [
        //...
		'permission' => 'Distilleries\PermissionUtil\Http\Middleware\CheckAccessPermission',
	];

并在你的控制器或路由中添加中间件

    public function __construct()
    {
        $this->middleware('permission');
    
    }

如果用户可以访问触发 403 的操作