virtualorz/permission

该软件包最新版本(0.0.16)没有提供许可证信息。

0.0.16 2019-07-03 07:33 UTC

This package is auto-updated.

Last update: 2024-09-29 05:41:42 UTC


README

用于Laravel网站管理页面权限
此软件包需要virtualorz/sitemp和virtualorz/actionLog两个软件包

安装

composer require virtualorz/permission

配置

编辑config/app.php

'providers' => [
    ...
    Virtualorz\Permission\PermissionServiceProvider::class
]

'aliases' => [
    ...
    'Permission' => Virtualorz\Permission\Facades\Permission::class,
]

发布数据

php artisan vendor:publish --provider="Virtualorz\Permission\PermissionServiceProvider"

运行迁移

php artisan migrate --path=/vendor/virtualorz/actionlog/src/migrations

编辑配置

编辑config/permission_identity ,
对于三级编辑,编辑您想要的名称

编辑.env

在项目根目录编辑laravel .env文件
添加LOGINSESSION,用于在session中存储名称,用于后台管理员登录
添加LOGINSESSION_CUSTOMER,用于在session中存储名称,用于前端客户登录
添加LOGINPAGE,用于登录页面的路由名称
添加LOGINPAGE_CUSTOMER,用于客户登录页面的路由名称

用法

创建中间件,在中间件中调用'checkLogin','checkLoginCustomer','checkPermission'方法来检查登录和权限

checkLogin中间件示例

$result = Permission::checkLogin($request);

        if($result !== true){
            return $result;
        }
        else{
            return $next($request);
        }

checkLoginCustomer中间件示例

$result = Permission::checkLoginCustomer($request,['hash'=>'0098765']);

        if($result !== true){
            return $result;
        }
        else{
            return $next($request);
        }

checkPermission中间件示例

$result = Permission::checkPermission();

        if($result){
            return $next($request);
        }

在视图中创建树形视图

include in blade
<link rel="stylesheet" href="{{ asset('vendor/treeView/bootstrap-treeview.css') }}">
<script src="{{ asset('vendor/treeView/bootstrap-treeview.js') }}"></script>
<script src="{{ asset('vendor/treeView/permission_tree.js') }}"></script>

in HTML
<input type="hidden" id="tree_node" value="{{ $sitemap }}"> <!-- this to generate tree-->
<input type="hidden" name="permission" id="permission" value="[]"> <!-- thid to save tree value-->

before form submit
$("#permission").val(JSON.stringify($('#treeview').treeview('getChecked')));

in Controller, use sitemap to generate JSON
$sitemap = Sitemap::getTreeView();
$sitemap = Sitemap::routStruct('root',$sitemap);
$sitemap = json_encode($sitemap);

方法

checkLogin($request)

检查管理员是否登录,如果登录返回true,如果没有则重定向到env('LOGINPAGE')设置的登录页面

checkLoginCustomer($request,$parameter)

检查客户是否登录,如果登录返回true,如果没有则重定向到env('LOGINSESSION_CUSTOMER')设置的登录页面

checkPermission

检查管理员是否有使用此页面的权限,如果有则返回true,如果没有则返回403页面

groupList($keyword = null,$page = 15)

返回权限组数据,@$keyword用于搜索组名,@$page用于每页分页

groupAdd($column)

返回将权限组数据添加到数据库的结果消息,@$column['name']用于组名,@column['identity']用于配置中设置的标识ID,@$column['permission']用于权限项数组

getGroupItem($id)

返回组ID为@$id的组项

groupEdit($column)

返回编辑权限组数据到数据库的结果消息,@$column['name']用于组名,@column['identity']用于配置中设置的标识ID,@$column['permission']用于权限项数组,@$cloumn['id']用于权限编辑主ID

groupDelete($column)

返回从数据库中删除权限组数据的结果消息,@$cloumn['id']用于权限删除主ID

permissionList($keyword = null,$page = 15)

返回权限数据,@$keyword用于搜索成员名,@$page用于每页分页

getPermissionItem($id)

返回设置为成员的权限和所有组数据作为数组

permissionEdit($column)

返回编辑权限数据到数据库的结果消息,@$column['select']用于选中的组数组,@$cloumn['id']用于成员ID

permissionDelete($column)

返回从数据库中删除权限数据的结果消息,@$cloumn['id']用于成员ID

中文版本文件

权限:为网站添加权限管理