diff --git a/app/Events/RequestedVersionCheckStatus.php b/app/Events/RequestedVersionCheckStatus.php new file mode 100644 index 0000000000..c87a0b35b8 --- /dev/null +++ b/app/Events/RequestedVersionCheckStatus.php @@ -0,0 +1,52 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Events; + +use FireflyIII\User; +use Illuminate\Queue\SerializesModels; + + +/** + * Class RequestedVersionCheckStatus + */ +class RequestedVersionCheckStatus extends Event +{ + use SerializesModels; + + /** + * @var User + */ + public $user; + + /** + * Create a new event instance. This event is triggered when Firefly III wants to know + * what the deal is with the version checker. + * + * @param User $user + */ + public function __construct(User $user) + { + $this->user = $user; + } +} \ No newline at end of file diff --git a/app/Handlers/Events/VersionCheckEventHandler.php b/app/Handlers/Events/VersionCheckEventHandler.php index 4308d8da10..18d101c1cf 100644 --- a/app/Handlers/Events/VersionCheckEventHandler.php +++ b/app/Handlers/Events/VersionCheckEventHandler.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Events; use FireflyConfig; +use FireflyIII\Events\RequestedVersionCheckStatus; use FireflyIII\User; use Illuminate\Auth\Events\Login; use Log; @@ -33,10 +34,11 @@ use Log; */ class VersionCheckEventHandler { + /** - * @param Login $event + * @param RequestedVersionCheckStatus $event */ - public function checkForUpdates(Login $event) + public function checkForUpdates(RequestedVersionCheckStatus $event) { // in Sandstorm, cannot check for updates: $sandstorm = 1 === intval(getenv('SANDSTORM')); diff --git a/app/Http/Controllers/Admin/UpdateController.php b/app/Http/Controllers/Admin/UpdateController.php index 6eb781c3ad..df69858a75 100644 --- a/app/Http/Controllers/Admin/UpdateController.php +++ b/app/Http/Controllers/Admin/UpdateController.php @@ -87,6 +87,7 @@ class UpdateController extends Controller { $checkForUpdates = intval($request->get('check_for_updates')); FireflyConfig::set('permission_update_check', $checkForUpdates); + FireflyConfig::set('last_update_check', time()); Session::flash('success', strval(trans('firefly.configuration_updated'))); return redirect(route('admin.update-check')); @@ -98,7 +99,8 @@ class UpdateController extends Controller public function updateCheck() { $current = config('firefly.version'); - $request = new UpdateRequest(); + /** @var UpdateRequest $request */ + $request = app(UpdateRequest::class); $check = -2; try { $request->call(); diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index b077674fa4..59ea09c3c7 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -25,6 +25,7 @@ namespace FireflyIII\Http\Controllers; use Artisan; use Carbon\Carbon; use DB; +use FireflyIII\Events\RequestedVersionCheckStatus; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Http\Middleware\IsDemoUser; @@ -234,6 +235,9 @@ class HomeController extends Controller $transactions[] = [$set, $account]; } + // fire check update event: + event(new RequestedVersionCheckStatus(auth()->user())); + return view( 'index', compact('count', 'subTitle', 'transactions', 'showDeps', 'billCount', 'start', 'end', 'today') diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 3ad80238f7..9cd5f2d8d5 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Providers; use FireflyIII\Events\RegisteredUser; +use FireflyIII\Events\RequestedVersionCheckStatus; use FireflyIII\Models\Account; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBankRepetition; @@ -54,6 +55,9 @@ class EventServiceProvider extends ServiceProvider // is a User related event. Login::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin', + + ], + RequestedVersionCheckStatus::class => [ 'FireflyIII\Handlers\Events\VersionCheckEventHandler@checkForUpdates', ],