virtualorz / permission
Requires
- virtualorz/actionlog: ^0.0.8
- virtualorz/sitemap: ^0.0.3
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