1
0
mirror of https://github.com/e107inc/e107.git synced 2025-06-07 03:15:03 +02:00

File inspector - improved detection of old files.

This commit is contained in:
Cameron 2020-05-20 13:48:54 -07:00
parent 0ed1a9ae5f
commit a908c9fc8e
2 changed files with 34 additions and 29 deletions

View File

@ -635,7 +635,7 @@ class file_inspector {
private function updateFileSizeCounter($absolutePath, $validationCode)
{
$status = $this->getStatusForValidationCode($validationCode);
$status = e_file_inspector::getStatusForValidationCode($validationCode);
$category = $this->statusToLegacyCountCategory($status);
$fileSize = filesize($absolutePath);
$this->count[$category]['size'] += $fileSize;
@ -774,30 +774,7 @@ class file_inspector {
private function getGlyphForValidationCode($validationCodeOrArray)
{
if (is_array($validationCodeOrArray)) return $this->getWorstGlyphForFolder($validationCodeOrArray);
return $this->glyph['file_' . $this->getStatusForValidationCode($validationCodeOrArray)];
}
private function getStatusForValidationCode($validationCode)
{
$status = 'unknown';
if ($validationCode & e_file_inspector::VALIDATED)
$status = 'check';
elseif (!($validationCode & e_file_inspector::VALIDATED_FILE_EXISTS))
$status = 'missing';
elseif (!($validationCode & e_file_inspector::VALIDATED_FILE_SECURITY))
$status = 'warning';
elseif (!($validationCode & e_file_inspector::VALIDATED_PATH_KNOWN))
$status = 'unknown';
elseif (!($validationCode & e_file_inspector::VALIDATED_PATH_VERSION))
$status = 'old';
elseif (!($validationCode & e_file_inspector::VALIDATED_HASH_CALCULABLE))
$status = 'uncalc';
elseif (!($validationCode & e_file_inspector::VALIDATED_HASH_CURRENT))
if ($validationCode & e_file_inspector::VALIDATED_HASH_EXISTS)
$status = 'old';
else
$status = 'fail';
return $status;
return $this->glyph['file_' . e_file_inspector::getStatusForValidationCode($validationCodeOrArray)];
}
private function getStatusRank($status)
@ -836,7 +813,7 @@ class file_inspector {
$worstStatusRank = -PHP_INT_MAX;
array_walk_recursive($treeFolder, function ($value) use (&$worstStatus, &$worstStatusRank)
{
$currentStatus = $this->getStatusForValidationCode($value);
$currentStatus = e_file_inspector::getStatusForValidationCode($value);
$currentStatusRank = $this->getStatusRank($currentStatus);
if ($currentStatusRank > $worstStatusRank)
{
@ -856,7 +833,7 @@ class file_inspector {
$validationCode & e_file_inspector::VALIDATED_PATH_VERSION)
return false;
$status = $this->getStatusForValidationCode($validationCode);
$status = e_file_inspector::getStatusForValidationCode($validationCode);
$return = true;
switch ($status)
{
@ -956,7 +933,7 @@ class file_inspector {
array_walk_recursive($this->files, function ($validationCode)
{
$status = $this->getStatusForValidationCode($validationCode);
$status = e_file_inspector::getStatusForValidationCode($validationCode);
$category = $this->statusToLegacyCountCategory($status);
$this->count[$category]['num']++;
if ($validationCode & e_file_inspector::VALIDATED_PATH_VERSION &&

View File

@ -120,6 +120,34 @@ abstract class e_file_inspector implements e_file_inspector_interface
}
/**
* Convert validation code to string.
* @param $validationCode
* @return string
*/
public static function getStatusForValidationCode($validationCode)
{
$status = 'unknown';
if ($validationCode & self::VALIDATED)
$status = 'check';
elseif (!($validationCode & self::VALIDATED_FILE_EXISTS))
$status = 'missing';
elseif (!($validationCode & self::VALIDATED_FILE_SECURITY))
$status = 'warning';
elseif (!($validationCode & self::VALIDATED_PATH_KNOWN))
$status = 'unknown';
elseif (!($validationCode & self::VALIDATED_PATH_VERSION))
$status = 'old';
elseif (!($validationCode & self::VALIDATED_HASH_CALCULABLE))
$status = 'uncalc';
elseif (!($validationCode & self::VALIDATED_HASH_CURRENT))
if ($validationCode & self::VALIDATED_HASH_EXISTS)
$status = 'old';
else
$status = 'fail';
return $status;
}
/**
* Prepare the provided database for reading or writing
*
@ -176,7 +204,7 @@ abstract class e_file_inspector implements e_file_inspector_interface
*/
private function log($relativePath, $status)
{
if($status !== 218 || empty($relativePath)) // deprecated-file status code - find better way to check this.
if(empty($relativePath) || self::getStatusForValidationCode($status) !== 'old') // deprecated-file status
{
return null;
}