Correzione modulo backup in caso di permessi mancanti
This commit is contained in:
parent
49ee854fd3
commit
997085a195
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$backup_dir = Backup::getDirectory();
|
|
||||||
|
|
||||||
switch (filter('op')) {
|
switch (filter('op')) {
|
||||||
case 'getfile':
|
case 'getfile':
|
||||||
$number = filter('number');
|
$number = filter('number');
|
||||||
|
@ -53,8 +51,7 @@ switch (filter('op')) {
|
||||||
$number = intval($number);
|
$number = intval($number);
|
||||||
|
|
||||||
$backups = Backup::getList();
|
$backups = Backup::getList();
|
||||||
$backup = $backups[$number];
|
$backup = $backups[$number] ?: $backup_dir;
|
||||||
$filename = basename($backup);
|
|
||||||
|
|
||||||
echo Util\FileSystem::size($backup);
|
echo Util\FileSystem::size($backup);
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,9 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$backup_dir = Backup::getDirectory();
|
|
||||||
$backups = Backup::getList();
|
$backups = Backup::getList();
|
||||||
|
|
||||||
echo '<p>'.tr('Il backup è <b>molto importante</b> perché permette di creare una copia della propria installazione e relativi dati per poterla poi ripristinare in seguito a errori, cancellazioni accidentali o guasti hardware').'.</p>';
|
// Controllo sul requisito ZIP
|
||||||
|
|
||||||
if (!extension_loaded('zip')) {
|
if (!extension_loaded('zip')) {
|
||||||
echo "
|
echo "
|
||||||
<div class='alert alert-warning'>
|
<div class='alert alert-warning'>
|
||||||
|
@ -15,27 +13,33 @@ if (!extension_loaded('zip')) {
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (starts_with($backup_dir, $docroot)) {
|
if (!empty($backup_dir)) {
|
||||||
|
$message = tr('Il percorso di backup è attualmente in: _PATH_', [
|
||||||
|
'_PATH_' => '<b>'.slashes($backup_dir).'</b>',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$message = tr('Sembra che tu non abbia ancora specificato un percorso per il backup').'.';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Controllo sui permessi di scrittura
|
||||||
|
if (!is_writable($backup_dir) || !is_readable($backup_dir)) {
|
||||||
|
echo '
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<i class="fa fa-warning"></i> '.$message.'<br>'.tr('La cartella di backup indicata non è utilizzabile dal gestionale a causa di alcuni permessi di scrittura non impostati correttamente').'.
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<p>'.tr('Il backup è molto importante perché permette di creare una copia della propria installazione e relativi dati per poterla poi ripristinare in seguito a errori, cancellazioni accidentali o guasti hardware').'.</p>';
|
||||||
|
|
||||||
|
if (starts_with($backup_dir, DOCROOT)) {
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
<i class="fa fa-warning"></i> '.tr('Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna').'.
|
<i class="fa fa-warning"></i> '.tr('Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna').'.
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_writable($backup_dir)) {
|
|
||||||
echo '
|
|
||||||
<div class="alert alert-warning">
|
|
||||||
<i class="fa fa-warning"></i> '.tr('La cartella di backup presente nella configurazione non è utilizzabile dal gestionale').'.
|
|
||||||
'.tr('Verificare che la cartella abbia i permessi di scrittura abilitati').'.
|
|
||||||
</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($backup_dir)) {
|
|
||||||
$message = tr('Il percorso di backup è attualmente in').': <b>'.slashes($backup_dir).'</b>';
|
|
||||||
} else {
|
|
||||||
$message = tr('Sembra che tu non abbia ancora specificato un percorso per il backup').'.';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Operazioni JavaScript
|
// Operazioni JavaScript
|
||||||
echo '
|
echo '
|
||||||
<script>
|
<script>
|
||||||
|
@ -97,7 +101,7 @@ echo '
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="callout callout-success">
|
<div class="callout callout-success">
|
||||||
<p>'.$message.'</p>
|
<p>'.$message.'</p>
|
||||||
<p><small>'.tr('Dimensione totale: _SPAZIO_', [
|
<p><small>'.tr('Spazio totale occupato dai backup: _SPAZIO_', [
|
||||||
'_SPAZIO_' => '<i id="total_size"></i>',
|
'_SPAZIO_' => '<i id="total_size"></i>',
|
||||||
]).'</small></p>
|
]).'</small></p>
|
||||||
<p><small>'.tr('Numero di backup: _NUM_', [
|
<p><small>'.tr('Numero di backup: _NUM_', [
|
||||||
|
@ -108,7 +112,7 @@ echo '
|
||||||
]).'</small></p>
|
]).'</small></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
loadSize("", "total_size");
|
loadSize("", "total_size");
|
||||||
</script>';
|
</script>';
|
||||||
|
@ -158,7 +162,7 @@ if (file_exists($backup_dir)) {
|
||||||
|
|
||||||
if (empty($backups_zip) && empty($backups_file)) {
|
if (empty($backups_zip) && empty($backups_file)) {
|
||||||
echo '
|
echo '
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-info">
|
||||||
<i class="fa fa-warning"></i> '.tr('Non è ancora stato trovato alcun backup!').'
|
<i class="fa fa-warning"></i> '.tr('Non è ancora stato trovato alcun backup!').'
|
||||||
'.tr('Se hai già inserito dei dati su OSM crealo il prima possibile...').'
|
'.tr('Se hai già inserito dei dati su OSM crealo il prima possibile...').'
|
||||||
</div>';
|
</div>';
|
||||||
|
@ -186,11 +190,11 @@ if (file_exists($backup_dir)) {
|
||||||
'.tr('Nome del file').': '.$name.'<br>
|
'.tr('Nome del file').': '.$name.'<br>
|
||||||
'.tr('Dimensione').': <i id="c-'.$id.'"></i>
|
'.tr('Dimensione').': <i id="c-'.$id.'"></i>
|
||||||
</small></p>
|
</small></p>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
loadSize("'.$id.'", "c-'.$id.'");
|
loadSize("'.$id.'", "c-'.$id.'");
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<a class="btn btn-primary" href="'.$rootdir.'/modules/backups/actions.php?op=getfile&number='.$id.'" target="_blank"><i class="fa fa-download"></i> '.tr('Scarica').'</a>
|
<a class="btn btn-primary" href="'.$rootdir.'/modules/backups/actions.php?op=getfile&number='.$id.'" target="_blank"><i class="fa fa-download"></i> '.tr('Scarica').'</a>
|
||||||
|
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
|
@ -236,7 +240,7 @@ if (file_exists($backup_dir)) {
|
||||||
'.tr('Nome del file').': '.$name.'<br>
|
'.tr('Nome del file').': '.$name.'<br>
|
||||||
'.tr('Dimensione').': <i id="n-'.$id.'"></i>
|
'.tr('Dimensione').': <i id="n-'.$id.'"></i>
|
||||||
</small></p>
|
</small></p>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
loadSize("'.$id.'", "n-'.$id.'");
|
loadSize("'.$id.'", "n-'.$id.'");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -4,6 +4,5 @@ include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$backup_dir = Backup::getDirectory();
|
$backup_dir = Backup::getDirectory();
|
||||||
}catch (UnexpectedValueException $e){
|
} catch (UnexpectedValueException $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ class Backup
|
||||||
|
|
||||||
$result = rtrim($result, '/');
|
$result = rtrim($result, '/');
|
||||||
if (!directory($result) || !is_writable($result)) {
|
if (!directory($result) || !is_writable($result)) {
|
||||||
throw new UnexpectedValueException();
|
//throw new UnexpectedValueException();
|
||||||
}
|
}
|
||||||
|
|
||||||
return slashes($result);
|
return slashes($result);
|
||||||
|
@ -44,6 +44,11 @@ class Backup
|
||||||
*/
|
*/
|
||||||
public static function getList($pattern = null)
|
public static function getList($pattern = null)
|
||||||
{
|
{
|
||||||
|
$directory = self::getDirectory();
|
||||||
|
if (!is_writable($directory) || !is_readable($directory)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
// Costruzione del pattern
|
// Costruzione del pattern
|
||||||
if (empty($pattern)) {
|
if (empty($pattern)) {
|
||||||
$replaces = self::getReplaces();
|
$replaces = self::getReplaces();
|
||||||
|
@ -56,7 +61,7 @@ class Backup
|
||||||
$backups = Symfony\Component\Finder\Finder::create()
|
$backups = Symfony\Component\Finder\Finder::create()
|
||||||
->name('/^'.$pattern.'/')
|
->name('/^'.$pattern.'/')
|
||||||
->sortByName()
|
->sortByName()
|
||||||
->in(self::getDirectory())
|
->in($directory)
|
||||||
->depth('== 0');
|
->depth('== 0');
|
||||||
|
|
||||||
$results = [];
|
$results = [];
|
||||||
|
|
Loading…
Reference in New Issue