Files
2024-10-14 00:08:40 +02:00

72 lines
1.7 KiB
Perl

# --
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --
package Kernel::System::SupportDataCollector::Plugin::OTRS::FileSystemWritable;
use strict;
use warnings;
use parent qw(Kernel::System::SupportDataCollector::PluginBase);
use Kernel::Language qw(Translatable);
our @ObjectDependencies = (
'Kernel::Config',
);
sub GetDisplayPath {
return Translatable('OTRS');
}
sub Run {
my $Self = shift;
my $Home = $Kernel::OM->Get('Kernel::Config')->Get('Home');
my @TestDirectories = qw(
/bin/
/Kernel/
/Kernel/System/
/Kernel/Output/
/Kernel/Output/HTML/
/Kernel/Modules/
);
my @ReadonlyDirectories;
for my $TestDirectory (@TestDirectories) {
my $File = $Home . $TestDirectory . "check_permissions.$$";
if ( open( my $FH, '>', "$File" ) ) { ## no critic
print $FH "test";
close($FH);
unlink $File;
}
else {
push @ReadonlyDirectories, $TestDirectory;
}
}
if (@ReadonlyDirectories) {
$Self->AddResultProblem(
Label => Translatable('File System Writable'),
Value => join( ', ', @ReadonlyDirectories ),
Message => Translatable('The file system on your OTRS partition is not writable.'),
);
}
else {
$Self->AddResultOk(
Label => Translatable('File System Writable'),
Value => '',
);
}
return $Self->GetResults();
}
1;