搞了一个多月的时间终于搞定这个基于ThinkPHP5的auth权限管理模块,下面是一些截图和参考资料。看云的那个文档给了我很大的帮助,花了10块钱买了他的源代码,然后自己修改了一番,适应了当时在做的系统。
Auth.php
<?php
/**
* Created by PhpStorm.
* User: 11547
* Date: 2018/7/30
* Time: 10:50
*/
namespace app\admin\controller;
use app\common\model\Common;
use think\Session;
use think\Request;
use think\Loader;
use think\Db;
class Auth extends Admin
{
function _initialize()
{
parent::_initialize();
//$this->role = Loader::model('role');
}
/**
* 权限列表
*/
public function auth()
{
$data = Db::name('auth')->getTreeData('tree','id','title');
$assign = array(
'data' => $data
);
$this->assign($assign);
return $this->fetch();
}
/**
* 添加权限
*/
public function addAuth(){
$data=input('post.');
// var_dump($data);
unset($data['id']);
$result=Db::name('auth')->insert($data);
if ($result) {
$this->success('添加成功','Admin/Role/auth');
}else{
$this->error('添加失败');
}
}
/**
* 修改权限
*/
public function editAuth(){
$data=input('post.');
$info=['title'=>$data['title'],'name'=>$data['name']];
$result=Db::name('auth')->where(["id"=>$data['id']])->update($info);
// $result=\app\admin\model\Admin::change(["id"=>$data['id']],$info);
if ($result) {
$this->success('修改成功!','Admin/Role/auth');
}else{
$this->error('您没有做任何修改!');
}
}
/**
* 删除权限
*/
public function deleteAuth($id){
$map=array(
'id'=>$id
);
$result=Db::name('auth')->delete($map);
if($result){
$this->success('删除成功','Admin/Role/auth');
}else{
$this->error('请先删除子权限');
}
}
}
auth.html
<!--添加权限-->
<div class="modal fade" id="thinkright-add" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="myModalLabel">
添加权限
</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" action="{:url('admin/role/addAuth')}" method="post">
<div class="panel-body">
<div class="form-group">
<label class="col-sm-3 control-label" for="demo-hor-inputemail">权限名称</label>
<div class="col-sm-9">
<input type="hidden" name="pid" value="0">
<input type="text" id="demo-hor-inputemail" class="form-control" name="title" required="required">
</div>
</div>