!153 增加移除权限组节点后所有子权限组也一并移除相应权限

Merge pull request !153 from MrCai/pull2fastadmin
pull/153/MERGE
Karson 2019-11-27 16:31:03 +08:00 committed by Gitee
commit 938671cf2b
1 changed files with 18 additions and 2 deletions

View File

@ -5,6 +5,8 @@ namespace app\admin\controller\auth;
use app\admin\model\AuthGroup; use app\admin\model\AuthGroup;
use app\common\controller\Backend; use app\common\controller\Backend;
use fast\Tree; use fast\Tree;
use think\Db;
use think\Exception;
/** /**
* 角色组 * 角色组
@ -151,8 +153,22 @@ class Group extends Backend
$rules = in_array('*', $currentrules) ? $rules : array_intersect($currentrules, $rules); $rules = in_array('*', $currentrules) ? $rules : array_intersect($currentrules, $rules);
$params['rules'] = implode(',', $rules); $params['rules'] = implode(',', $rules);
if ($params) { if ($params) {
$row->save($params); Db::startTrans();
$this->success(); try {
$row->save($params);
$children_auth_groups = model("AuthGroup")->all(['id'=>['in',implode(',',(Tree::instance()->getChildrenIds($row->id)))]]);
$childparams = [];
foreach ($children_auth_groups as $key=>$children_auth_group) {
$childparams[$key]['id'] = $children_auth_group->id;
$childparams[$key]['rules'] = implode(',', array_intersect(explode(',', $children_auth_group->rules), $rules));
}
model("AuthGroup")->saveAll($childparams);
Db::commit();
$this->success();
}catch (Exception $e){
Db::rollback();
$this->error($e->getMessage());
}
} }
$this->error(); $this->error();
return; return;