Warning if people disabled update checking. Every 4 weeks.

This commit is contained in:
James Cole 2020-05-20 06:40:18 +02:00
parent e6338705a7
commit 782ecca6a9
2 changed files with 34 additions and 0 deletions

View File

@ -54,6 +54,7 @@ class VersionCheckEventHandler
$value = (int) $permission->data; $value = (int) $permission->data;
if (1 !== $value) { if (1 !== $value) {
Log::info('Update check is not enabled.'); Log::info('Update check is not enabled.');
$this->warnToCheckForUpdates($event);
return; return;
} }
@ -85,4 +86,36 @@ class VersionCheckEventHandler
session()->flash($release['level'], $release['message']); session()->flash($release['level'], $release['message']);
app('fireflyconfig')->set('last_update_check', time()); app('fireflyconfig')->set('last_update_check', time());
} }
/**
* @param RequestedVersionCheckStatus $event
*/
protected function warnToCheckForUpdates(RequestedVersionCheckStatus $event): void
{
/** @var UserRepositoryInterface $repository */
$repository = app(UserRepositoryInterface::class);
/** @var User $user */
$user = $event->user;
if (!$repository->hasRole($user, 'owner')) {
Log::debug('User is not admin, done.');
return;
}
/** @var Configuration $lastCheckTime */
$lastCheckTime = app('fireflyconfig')->get('last_update_warning', time());
$now = time();
$diff = $now - $lastCheckTime->data;
Log::debug(sprintf('Last warning time is %d, current time is %d, difference is %d', $lastCheckTime->data, $now, $diff));
if ($diff < 604800 * 4) {
Log::debug(sprintf('Warned about updates less than four weeks ago (on %s).', date('Y-m-d H:i:s', $lastCheckTime->data)));
return;
}
// last check time was more than a week ago.
Log::debug('Have warned about a new version in four weeks!');
session()->flash('info', (string) trans('firefly.disabled_but_check'));
app('fireflyconfig')->set('last_update_warning', time());
}
} }

View File

@ -242,6 +242,7 @@ return [
'update_check_error' => 'An error occurred while checking for updates: :error', 'update_check_error' => 'An error occurred while checking for updates: :error',
'unknown_error' => 'Unknown error. Sorry about that.', 'unknown_error' => 'Unknown error. Sorry about that.',
'just_new_release' => 'A new version is available! Version :version was released :date. This release is very fresh. Wait a few days for the new release to stabilize.', 'just_new_release' => 'A new version is available! Version :version was released :date. This release is very fresh. Wait a few days for the new release to stabilize.',
'disabled_but_check' => 'You disabled update checking. So don\'t forget to check for updates yourself every now and then. Thank you!',
'admin_update_channel_title' => 'Update channel', 'admin_update_channel_title' => 'Update channel',
'admin_update_channel_explain' => 'Firefly III has three update "channels" which determine how ahead of the curve you are in terms of features, enhancements and bugs. Use the "beta" channel if you\'re adventurous and the "alpha" when you like to live life dangerously.', 'admin_update_channel_explain' => 'Firefly III has three update "channels" which determine how ahead of the curve you are in terms of features, enhancements and bugs. Use the "beta" channel if you\'re adventurous and the "alpha" when you like to live life dangerously.',
'update_channel_stable' => 'Stable. Everything should work as expected.', 'update_channel_stable' => 'Stable. Everything should work as expected.',