From fa9855722554735227e11c71ebd0b3c1ed90d282 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 Oct 2025 13:34:50 +0000 Subject: [PATCH 1/2] Check that the permissions are really an array This accounts for weird data in the permissions column --- app/Models/User.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Models/User.php b/app/Models/User.php index c6cac9f388..2c56c43737 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -237,11 +237,14 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo $permissions = json_decode($this->permissions, true); } - foreach ($permissions as $permission) { - if ($permission != 0) { - return true; + if (($permissions) && (is_array($permissions))) { + foreach ($permissions as $permission) { + if ($permission != 0) { + return true; + } } } + return false; } From 7395b1a4ebe938bbf3ff300367f0a128560a0636 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 Oct 2025 13:40:24 +0000 Subject: [PATCH 2/2] Track permission changes --- app/Observers/UserObserver.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Observers/UserObserver.php b/app/Observers/UserObserver.php index acde9ceaed..cead5c8081 100644 --- a/app/Observers/UserObserver.php +++ b/app/Observers/UserObserver.php @@ -49,7 +49,8 @@ class UserObserver 'end_date', 'autoassign_licenses', 'vip', - 'password' + 'password', + 'permissions' ]; $changed = [];