class FileOwnership in Automatic Updates 8
File ownership checker.
Hierarchy
- class \Drupal\automatic_updates\ReadinessChecker\Filesystem implements ReadinessCheckerInterface uses StringTranslationTrait
- class \Drupal\automatic_updates\ReadinessChecker\FileOwnership
Expanded class hierarchy of FileOwnership
1 file declares its use of FileOwnership
- FileOwnershipTest.php in tests/
src/ Kernel/ ReadinessChecker/ FileOwnershipTest.php
1 string reference to 'FileOwnership'
1 service uses FileOwnership
File
- src/
ReadinessChecker/ FileOwnership.php, line 8
Namespace
Drupal\automatic_updates\ReadinessCheckerView source
class FileOwnership extends Filesystem {
/**
* {@inheritdoc}
*/
protected function doCheck() {
$file_path = $this
->getRootPath() . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, [
'core',
'core.api.php',
]);
return $this
->ownerIsScriptUser($file_path);
}
/**
* Check if file is owned by the same user as which is running the script.
*
* Helps identify scenarios when the check is run by web user and the files
* are owned by a non-web user.
*
* @param string $file_path
* The file path to check.
*
* @return array
* An array of translatable strings if there are file ownership issues.
*/
protected function ownerIsScriptUser($file_path) {
$messages = [];
if (function_exists('posix_getuid')) {
$file_owner_uid = fileowner($file_path);
$script_uid = posix_getuid();
if ($file_owner_uid !== $script_uid) {
$messages[] = $this
->t('Files are owned by uid "@owner" but PHP is running as uid "@actual". The file owner and PHP user should be the same during an update.', [
'@owner' => $file_owner_uid,
'@file' => $file_path,
'@actual' => $script_uid,
]);
}
}
return $messages;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FileOwnership:: |
protected | function |
Perform checks. Overrides Filesystem:: |
1 |
FileOwnership:: |
protected | function | Check if file is owned by the same user as which is running the script. | |
Filesystem:: |
protected | property | The root file path. | |
Filesystem:: |
protected | property | The vendor file path. | |
Filesystem:: |
protected | function | Determine if the root and vendor file system are the same logical disk. | 2 |
Filesystem:: |
protected | function | Get the root file path. | |
Filesystem:: |
protected | function | Get the vendor file path. | |
Filesystem:: |
public | function |
Run check. Overrides ReadinessCheckerInterface:: |
|
Filesystem:: |
public | function | Filesystem constructor. | 1 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |