Fixed that /api/system/db-changed-time always returned the current time

This commit is contained in:
Bernd Bestel
2019-09-17 17:49:58 +02:00
parent db0c4f78bd
commit 0771d58fe7
4 changed files with 16 additions and 0 deletions

View File

@@ -21,9 +21,14 @@ class ApiKeyService extends BaseService
$apiKeyRow = $this->Database->api_keys()->where('api_key = :1 AND expires > :2 AND key_type = :3', $apiKey, date('Y-m-d H:i:s', time()), $keyType)->fetch();
if ($apiKeyRow !== null)
{
// This should not change the database file modification time at this is used
// to determine if REALLY something has changed
$dbModTime = $this->DatabaseService->GetDbChangedTime();
$apiKeyRow->update(array(
'last_used' => date('Y-m-d H:i:s', time())
));
$this->DatabaseService->SetDbChangedTime($dbModTime);
return true;
}
else

View File

@@ -68,4 +68,9 @@ class DatabaseService
{
return date('Y-m-d H:i:s', filemtime(GROCY_DATAPATH . '/grocy.db'));
}
public function SetDbChangedTime($dateTime)
{
touch(GROCY_DATAPATH . '/grocy.db', strtotime($dateTime));
}
}

View File

@@ -18,9 +18,14 @@ class SessionService extends BaseService
$sessionRow = $this->Database->sessions()->where('session_key = :1 AND expires > :2', $sessionKey, date('Y-m-d H:i:s', time()))->fetch();
if ($sessionRow !== null)
{
// This should not change the database file modification time at this is used
// to determine if REALLY something has changed
$dbModTime = $this->DatabaseService->GetDbChangedTime();
$sessionRow->update(array(
'last_used' => date('Y-m-d H:i:s', time())
));
$this->DatabaseService->SetDbChangedTime($dbModTime);
return true;
}
else