Skip to content

Commit c4398d5

Browse files
committed
fix(control): 更新角色的权限时删除缓存用户对应的权限
1 parent 375bec9 commit c4398d5

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

laravel/app/Http/Controllers/Api/RoleController.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ public function update(Update $request, $id)
127127
$input = $request->only(['name']);
128128
$permissions = $request['checkedPermissions'];
129129
if ($role->fill($input)->save()) {
130+
// 清除用户缓存角色权限记录
131+
$users = $role->users;
132+
foreach ($users as $user) {
133+
\Cache::forget('user_r_p_'.$user->id);
134+
}
135+
130136

131137
$p_all = Permission::all();//获取所有权限
132138

laravel/app/User.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ function hasPermission($permissions, $option = [])
113113
{
114114
$option = array_merge(['valid_all' => false,], $option);
115115
if (!is_array($permissions)) $permissions = [$permissions];
116-
$gates = cacheUserRolesAndPermissions(\Auth::id(), true);
116+
$gates = cacheUserRolesAndPermissions(\Auth::id(), false);
117117

118118
foreach ($permissions as $permission) {
119119
if (in_array($permission, $gates['permissions'])) {

0 commit comments

Comments
 (0)