Skip to content

Commit 2f378e3

Browse files
committed
Clear cache when roles & permissions are updated
1 parent e4956aa commit 2f378e3

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

packages/sprinkle-admin/app/src/Controller/Role/RoleUpdateFieldAction.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
namespace UserFrosting\Sprinkle\Admin\Controller\Role;
1414

15+
use Illuminate\Cache\Repository as Cache;
1516
use Illuminate\Database\Connection;
1617
use Psr\Http\Message\ResponseInterface as Response;
1718
use Psr\Http\Message\ServerRequestInterface as Request;
@@ -52,6 +53,7 @@ public function __construct(
5253
protected Translator $translator,
5354
protected Authenticator $authenticator,
5455
protected Config $config,
56+
protected Cache $cache,
5557
protected Connection $db,
5658
protected UserActivityLogger $userActivityLogger,
5759
protected RequestDataTransformer $transformer,
@@ -140,6 +142,9 @@ protected function handle(
140142
$this->db->transaction(function () use ($fieldName, $fieldValue, $role, $currentUser) {
141143
if ($fieldName === 'permissions') {
142144
$role->permissions()->sync($fieldValue);
145+
146+
// All user's permissions are cached. Clear cache.
147+
$this->cache->clear();
143148
} else {
144149
$role->$fieldName = $fieldValue; // @phpstan-ignore-line Variable property is ok here.
145150
$role->save();

packages/sprinkle-admin/app/src/Controller/User/UserUpdateFieldAction.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,11 @@ protected function handle(
178178
$this->db->transaction(function () use ($fieldName, $fieldValue, $user, $currentUser) {
179179
if ($fieldName === 'roles') {
180180
$user->roles()->sync($fieldValue);
181+
$user->forgetCache();
181182
} else {
182183
$user->$fieldName = $fieldValue; // @phpstan-ignore-line Variable property is ok here.
183184
$user->save();
184-
}
185+
}
185186

186187
// Create activity record
187188
$this->userActivityLogger->info("User {$currentUser->user_name} updated property '$fieldName' for user {$user->user_name}.", [

0 commit comments

Comments
 (0)