From 8abb41abbd5833217823890da936a29a129bd046 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Thu, 23 Feb 2023 23:01:03 +0000 Subject: [PATCH] Added caching to the loading of system roles Admin system role was being loaded for each permission check performed. This caches the fetching for the request lifetime. --- app/Auth/Role.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Auth/Role.php b/app/Auth/Role.php index d6c4a0951..8f9702fa0 100644 --- a/app/Auth/Role.php +++ b/app/Auth/Role.php @@ -111,7 +111,13 @@ class Role extends Model implements Loggable */ public static function getSystemRole(string $systemName): ?self { - return static::query()->where('system_name', '=', $systemName)->first(); + static $cache = []; + + if (!isset($cache[$systemName])) { + $cache[$systemName] = static::query()->where('system_name', '=', $systemName)->first(); + } + + return $cache[$systemName]; } /**