Merge pull request #12326 from uberbrady/uncache_settings

The cache system in getSettings() cached values "forever." That's bad.
This commit is contained in:
snipe 2023-01-09 17:14:22 -08:00 committed by GitHub
commit 20a9be2f6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 8 deletions

View file

@ -21,11 +21,10 @@ class Setting extends Model
use Notifiable, ValidatingTrait;
/**
* The app settings cache key name.
*
* @var string
* The cache property so that multiple invocations of this will only load the Settings record from disk only once
* @var self
*/
const APP_SETTINGS_KEY = 'snipeit_app_settings';
public static ?self $_cache = null;
/**
* The setup check cache key name.
@ -98,14 +97,15 @@ class Setting extends Model
*/
public static function getSettings(): ?self
{
return Cache::rememberForever(self::APP_SETTINGS_KEY, function () {
if (!self::$_cache) {
// Need for setup as no tables exist
try {
return self::first();
self::$_cache = self::first();
} catch (\Throwable $th) {
return null;
}
});
}
return self::$_cache;
}
/**

View file

@ -16,7 +16,6 @@ class SettingObserver
*/
public function saved(Setting $setting)
{
Cache::forget(Setting::APP_SETTINGS_KEY);
Cache::forget(Setting::SETUP_CHECK_KEY);
}
}