# -- # 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;