Fix some things with the update checker.

This commit is contained in:
James Cole 2018-08-17 21:51:15 +02:00
parent a8080f55f0
commit 81d17409d4
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
5 changed files with 26 additions and 7 deletions

View File

@ -31,7 +31,7 @@ LOG_CHANNEL=stdout
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=notice
APP_LOG_LEVEL=${APP_LOG_LEVEL}
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# For other database types, please see the FAQ: http://firefly-iii.readthedocs.io/en/latest/support/faq.html

View File

@ -28,6 +28,7 @@ namespace FireflyIII\Handlers\Events;
use FireflyConfig;
use FireflyIII\Events\RequestedVersionCheckStatus;
use FireflyIII\Helpers\Update\UpdateTrait;
use FireflyIII\Models\Configuration;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User;
use Log;
@ -50,9 +51,11 @@ class VersionCheckEventHandler
*/
public function checkForUpdates(RequestedVersionCheckStatus $event): void
{
Log::debug('Now in checkForUpdates()');
// in Sandstorm, cannot check for updates:
$sandstorm = 1 === (int)getenv('SANDSTORM');
if (true === $sandstorm) {
Log::debug('This is Sandstorm instance, done.');
return; // @codeCoverageIgnore
}
@ -61,18 +64,19 @@ class VersionCheckEventHandler
/** @var User $user */
$user = $event->user;
if (!$repository->hasRole($user, 'owner')) {
Log::debug('User is not admin, done.');
return;
}
/** @var Configuration $lastCheckTime */
$lastCheckTime = FireflyConfig::get('last_update_check', time());
$now = time();
$diff = $now - $lastCheckTime->data;
Log::debug(sprintf('Difference is %d seconds.', $diff));
Log::debug(sprintf('Last check time is %d, current time is %d, difference is %d', $lastCheckTime->data, $now, $diff));
if ($diff < 604800) {
Log::debug(sprintf('Checked for updates less than a week ago (on %s).', date('Y-m-d H:i:s', $lastCheckTime->data)));
//return;
return;
}
// last check time was more than a week ago.
Log::debug('Have not checked for a new version in a week!');

View File

@ -42,6 +42,7 @@ trait UpdateTrait
*/
public function getLatestRelease(): ?Release
{
Log::debug('Now in getLatestRelease()');
$return = null;
/** @var UpdateRequest $request */
$request = app(UpdateRequest::class);
@ -53,11 +54,15 @@ trait UpdateTrait
// get releases from array.
$releases = $request->getReleases();
Log::debug(sprintf('Found %d releases', \count($releases)));
if (\count($releases) > 0) {
// first entry should be the latest entry:
/** @var Release $first */
$first = reset($releases);
$return = $first;
Log::debug(sprintf('Number of releases found is larger than zero. Return %s ', $first->getTitle()));
}
return $return;
@ -73,17 +78,21 @@ trait UpdateTrait
*/
public function parseResult(int $versionCheck, Release $release = null): string
{
Log::debug(sprintf('Now in parseResult(%d)', $versionCheck));
$current = (string)config('firefly.version');
$return = '';
if ($versionCheck === -2) {
Log::debug('-2, so give error.');
$return = (string)trans('firefly.update_check_error');
}
if ($versionCheck === -1 && null !== $release) {
Log::debug('New version!');
// there is a new FF version!
// has it been released for at least three days?
$today = new Carbon;
$releaseDate = $release->getUpdated();
if ($today->diffInDays($releaseDate, true) > 3) {
Log::debug('New version is older than 3 days!');
$monthAndDayFormat = (string)trans('config.month_and_day');
$return = (string)trans(
'firefly.update_new_version_alert',
@ -97,10 +106,12 @@ trait UpdateTrait
}
if (0 === $versionCheck) {
Log::debug('User is running current version.');
// you are running the current version!
$return = (string)trans('firefly.update_current_version_alert', ['version' => $current]);
}
if (1 === $versionCheck && null !== $release) {
Log::debug('User is running NEWER version.');
// you are running a newer version!
$return = (string)trans('firefly.update_newer_version_alert', ['your_version' => $current, 'new_version' => $release->getTitle()]);
}
@ -117,7 +128,9 @@ trait UpdateTrait
*/
public function versionCheck(Release $release = null): int
{
Log::debug('Now in versionCheck()');
if (null === $release) {
Log::debug('Release is null, return -2.');
return -2;
}
$current = (string)config('firefly.version');

View File

@ -136,8 +136,8 @@ class DebugController extends Controller
$errorReporting = $this->errorReporting((int)ini_get('error_reporting'));
$appEnv = env('APP_ENV', '');
$appDebug = var_export(env('APP_DEBUG', false), true);
$logChannel = env('LOG_CHANNEL', '');
$appLogLevel = env('APP_LOG_LEVEL', '');
$logChannel = env('LOG_CHANNEL', '');
$appLogLevel = env('APP_LOG_LEVEL', 'info');
$packages = $this->collectPackages();
$cacheDriver = env('CACHE_DRIVER', 'unknown');

View File

@ -118,9 +118,11 @@ class FireflyConfig
public function set(string $name, $value): Configuration
{
Log::debug('Set new value for ', ['name' => $name]);
/** @var Configuration $config */
$config = Configuration::whereName($name)->first();
if (null === $config) {
Log::debug('Does not exist yet ', ['name' => $name]);
/** @var Configuration $item */
$item = new Configuration;
$item->name = $name;
$item->data = $value;
@ -130,7 +132,7 @@ class FireflyConfig
return $item;
}
Log::debug('Exists already ', ['name' => $name]);
Log::debug('Exists already, overwrite value.', ['name' => $name]);
$config->data = $value;
$config->save();
Cache::forget('ff-config-' . $name);