Add username hint for permissions during install (#3373)

The username is retrieved by 2 different means to support different
configurations and architectures. If there is no way to find the
username, the "unknown" string is displayed instead.

See #2758
This commit is contained in:
Alexis Degrugillier
2021-01-23 17:04:01 -05:00
committed by GitHub
parent 297d188a46
commit 3e89086e45
19 changed files with 67 additions and 31 deletions

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Zkontrolujte oprávnění adresáře <em>%s</em>. HTTP server musí mít do tohoto adresáře práva zápisu.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Zkontrolujte oprávnění adresáře <em>%s</em>. HTTP server musí mít do tohoto adresáře práva zápisu.',
'ok' => 'Oprávnění adresáře users jsou v pořádku.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>%s</em>. Der HTTP-Server muss Schreibrechte besitzen.',
'ok' => 'Die Berechtigungen des Temp Verzeichnisses sind in Ordnung.',
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>%s</em>. Der HTTP-Server muss Schreibrechte besitzen.',
'ok' => 'Die Berechtigungen des Verzeichnisses <em>%s</em> sind in Ordnung.',

View File

@@ -33,7 +33,7 @@ return array(
'_' => 'Checks',
'already_installed' => 'We have detected that FreshRSS is already installed!',
'cache' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the cache directory are good.',
),
'ctype' => array(
@@ -45,7 +45,7 @@ return array(
'ok' => 'You have the cURL library.',
),
'data' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the data directory are good.',
),
'dom' => array(
@@ -53,7 +53,7 @@ return array(
'ok' => 'You have the required library to browse the DOM.',
),
'favicons' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the favicons directory are good.',
),
'fileinfo' => array(
@@ -89,11 +89,12 @@ return array(
'ok' => 'Your PHP version, %s, is compatible with FreshRSS.',
),
'tmp' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the temp directory are good.',
),
'unknown_process_username' => 'unknown',
'users' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the users directory are good.',
),
'xml' => array(

View File

@@ -33,7 +33,7 @@ return array(
'_' => 'Checks',
'already_installed' => 'We have detected that FreshRSS is already installed!',
'cache' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.',
'ok' => 'Permissions on the cache directory are good.',
),
'ctype' => array(
@@ -45,7 +45,7 @@ return array(
'ok' => 'You have the cURL library.',
),
'data' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.',
'ok' => 'Permissions on the data directory are good.',
),
'dom' => array(
@@ -53,7 +53,7 @@ return array(
'ok' => 'You have the required library to browse the DOM.',
),
'favicons' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.',
'ok' => 'Permissions on the favicons directory are good.',
),
'fileinfo' => array(
@@ -89,11 +89,12 @@ return array(
'ok' => 'Your PHP version, %s, is compatible with FreshRSS.',
),
'tmp' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the temp directory are good.',
),
'unknown_process_username' => 'unknown',
'users' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.',
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the users directory are good.',
),
'xml' => array(

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
'ok' => 'Los permisos en el directorio users son correctos.',

View File

@@ -33,7 +33,7 @@ return array(
'_' => 'Vérifications',
'already_installed' => 'FreshRSS semble avoir déjà été installé !',
'cache' => array(
'nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable décrire dedans.',
'nok' => 'Veuillez vérifier les droits de lutilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable décrire dedans.',
'ok' => 'Les droits sur le répertoire de cache sont bons.',
),
'ctype' => array(
@@ -45,7 +45,7 @@ return array(
'ok' => 'Vous disposez de cURL.',
),
'data' => array(
'nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable décrire dedans.',
'nok' => 'Veuillez vérifier les droits de lutilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable décrire dedans.',
'ok' => 'Les droits sur le répertoire de data sont bons.',
),
'dom' => array(
@@ -53,7 +53,7 @@ return array(
'ok' => 'Vous disposez de la librairie pour parcourir le DOM.',
),
'favicons' => array(
'nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable décrire dedans.',
'nok' => 'Veuillez vérifier les droits de lutilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable décrire dedans.',
'ok' => 'Les droits sur le répertoire des favicons sont bons.',
),
'fileinfo' => array(
@@ -89,11 +89,12 @@ return array(
'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
),
'tmp' => array(
'nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable décrire dedans.',
'nok' => 'Veuillez vérifier les droits de lutilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable décrire dedans.',
'ok' => 'Les droits sur le répertoire temporaire sont bons.',
),
'unknown_process_username' => 'inconnu',
'users' => array(
'nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable décrire dedans.',
'nok' => 'Veuillez vérifier les droits de lutilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable décrire dedans.',
'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.',
),
'xml' => array(

View File

@@ -33,7 +33,7 @@ return array(
'_' => 'בדיקות',
'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO - Translation
'cache' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'ההרשאות בתיקיית המטמון תקינות',
),
'ctype' => array(
@@ -45,7 +45,7 @@ return array(
'ok' => 'יש לכם את גירסת %s של cURL',
),
'data' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'ההרשאות בתיקיית הדאטא תקינות',
),
'dom' => array(
@@ -53,7 +53,7 @@ return array(
'ok' => 'הספרייה הנדרשת לסיור ב DOM מותקנת',
),
'favicons' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'ההרשאות בתיקיית הfavicons תקינות',
),
'fileinfo' => array(
@@ -89,11 +89,12 @@ return array(
'ok' => 'גירסת PHP שלכם היא %s, שתואמת ל FreshRSS',
),
'tmp' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO - Translation
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO - Translation
'ok' => 'Permissions on the users directory are good.', // TODO - Translation
),
'xml' => array(

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Verifica i permessi sulla cartella <em>%s</em>. Il server HTTP deve avere i permessi per scriverci dentro.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Verifica i permessi sulla cartella <em>%s</em>. Il server HTTP deve avere i permessi per scriverci dentro.',
'ok' => 'I permessi sulla cartella users sono corretti.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => '<em>%s</em> 디렉토리의 권한을 확인하세요. HTTP 서버가 쓰기 권한을 가지고 있어야 합니다.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => '<em>%s</em> 디렉토리의 권한을 확인하세요. HTTP 서버가 쓰기 권한을 가지고 있어야 합니다.',
'ok' => 'users 디렉토리의 권한이 올바르게 설정되어 있습니다.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Controleer permissies van de <em>%s</em> map. HTTP server moet rechten hebben om er in te kunnen schrijven.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Controleer permissies van de <em>%s</em> map. HTTP server moet rechten hebben om er in te kunnen schrijven.',
'ok' => 'Permissies van de users map zijn goed.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Volgatz verificar los dreches sul repertòri <em>%s</em>. Lo servidor HTTP deu poder escriure dedins.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Volgatz verificar los dreches sul repertòri <em>%s</em>. Lo servidor HTTP deu poder escriure dedins.',
'ok' => 'Los dreches sul repertòri dels utilizaires son bons.',

View File

@@ -33,7 +33,7 @@ return array(
'_' => 'Checks', // TODO - Translation
'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO - Translation
'cache' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the cache directory are good.', // TODO - Translation
),
'ctype' => array(
@@ -45,7 +45,7 @@ return array(
'ok' => 'You have the cURL library.', // TODO - Translation
),
'data' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the data directory are good.', // TODO - Translation
),
'dom' => array(
@@ -53,7 +53,7 @@ return array(
'ok' => 'You have the required library to browse the DOM.', // TODO - Translation
),
'favicons' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permission.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
'ok' => 'Permissions on the favicons directory are good.', // TODO - Translation
),
'fileinfo' => array(
@@ -89,11 +89,12 @@ return array(
'ok' => 'Your PHP version, %s, is compatible with FreshRSS.', // TODO - Translation
),
'tmp' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO - Translation
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Check permissions on the <em>%s</em> directory. The HTTP server must have write permissions.', // TODO - Translation
'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO - Translation
'ok' => 'Permissions on the users directory are good.', // TODO - Translation
),
'xml' => array(

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Verifiquei as permissões no diretório <em>%s</em>. O servidor HTTP deve ter direitos para escrever dentro desta pasta.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Verifiquei as permissões no diretório <em>%s</em>. O servidor HTTP deve ter direitos para escrever dentro desta pasta.',
'ok' => 'Permissões no diretório users estão corretos.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.',
'ok' => 'Права на папку users в порядке.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => 'Skontrolujte oprávnenia prístupu do priečinku <em>%s</em>. HTTP server musí mať právo doň zapisovať.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => 'Skontrolujte oprávnenia prístupu do priečinku <em>%s</em>. HTTP server musí mať právo doň zapisovať.',
'ok' => 'Oprávnenia prístupu do priečinku používateľov sú OK.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => '<em>%s</em> klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı.',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => '<em>%s</em> klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı.',
'ok' => 'Kullanıcılar klasörü yetkileri sorunsuz.',

View File

@@ -92,6 +92,7 @@ return array(
'nok' => '请检查 <em>%s</em> 目录权限。HTTP 服务器必须有其写入权限。',
'ok' => 'Permissions on the temp directory are good.', // TODO - Translation
),
'unknown_process_username' => 'unknown', // TODO - Translation
'users' => array(
'nok' => '请检查 <em>%s</em> 目录权限。HTTP 服务器必须有其写入权限。',
'ok' => 'users 目录权限正常',

View File

@@ -363,17 +363,35 @@ function printStep0() {
}
function printStep1Template($key, $value, $messageParams = []) {
$message = _t("install.check.{$key}.{$value}", ...$messageParams);
if ('ok' === $value) {
$message = _t("install.check.{$key}.ok", ...$messageParams);
?><p class="alert alert-success"><span class="alert-head"><?= _t('gen.short.ok') ?></span> <?= $message ?></p><?php
} else {
$message = _t("install.check.{$key}.nok", ...$messageParams);
?><p class="alert alert-error"><span class="alert-head"><?= _t('gen.short.damn') ?></span> <?= $message ?></p><?php
}
}
function getProcessUsername() {
if (function_exists('posix_getpwuid') && function_exists('posix_geteuid')) {
$processUser = posix_getpwuid(posix_geteuid());
return $processUser['name'];
}
if (function_exists('exec')) {
exec('whoami', $output);
if (!empty($output[0])) {
return $output[0];
}
}
return _t('install.check.unknown_process_username');
}
// @todo refactor this view with the check_install action
function printStep1() {
$res = checkRequirements();
$processUsername = getProcessUsername();
?>
<noscript><p class="alert alert-warn"><span class="alert-head"><?= _t('gen.short.attention') ?></span> <?= _t('install.javascript_is_better') ?></p></noscript>
@@ -388,11 +406,11 @@ function printStep1() {
printStep1Template('xml', $res['xml']);
printStep1Template('mbstring', $res['mbstring']);
printStep1Template('fileinfo', $res['fileinfo']);
printStep1Template('data', $res['data'], [DATA_PATH]);
printStep1Template('cache', $res['cache'], [CACHE_PATH]);
printStep1Template('tmp', $res['tmp'], [TMP_PATH]);
printStep1Template('users', $res['users'], [USERS_PATH]);
printStep1Template('favicons', $res['favicons'], [DATA_PATH . '/favicons']);
printStep1Template('data', $res['data'], [DATA_PATH, $processUsername]);
printStep1Template('cache', $res['cache'], [CACHE_PATH, $processUsername]);
printStep1Template('tmp', $res['tmp'], [TMP_PATH, $processUsername]);
printStep1Template('users', $res['users'], [USERS_PATH, $processUsername]);
printStep1Template('favicons', $res['favicons'], [DATA_PATH . '/favicons', $processUsername]);
printStep1Template('http_referer', $res['http_referer']);
?>

View File

@@ -672,6 +672,7 @@ return array(
'install.check.php.ok',
'install.check.tmp.nok',
'install.check.tmp.ok',
'install.check.unknown_process_username',
'install.check.users.nok',
'install.check.users.ok',
'install.check.xml.nok',