diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 68d691f0f..b4a759cb0 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -4,8 +4,9 @@ - The YUI library used in WebGUI has been upgraded to 2.5.0. - The resizable text area implementation used in WebGUI has been migrated to the code provided by YUI 2.5.0. -- As a result of the above, we no longer need extjs, and it has been + - As a result of the above, we no longer need extjs, and it has been removed. + - added script to remove unneeded .wgaccess files instead of having it run during upgrade 7.5.3 - prevent HTML and Macro injection in usernames diff --git a/docs/upgrades/upgrade_7.5.2-7.5.3.pl b/docs/upgrades/upgrade_7.5.2-7.5.3.pl index a65771555..65a5493e9 100644 --- a/docs/upgrades/upgrade_7.5.2-7.5.3.pl +++ b/docs/upgrades/upgrade_7.5.2-7.5.3.pl @@ -23,31 +23,11 @@ my $quiet; # this line required my $session = start(); # this line required -removePublicStorageAccessFiles($session); # upgrade functions go here finish($session); # this line required -#------------------------------------------------- -sub removePublicStorageAccessFiles { - my $session = shift; - print "\tRemoving unnecessary .wgaccess files.\n" unless ($quiet); - my $uploadsPath = $session->config->get('uploadsPath'); - File::Find::find({no_chdir => 1, wanted => sub { - return if -d $File::Find::name; - my $filename = (File::Spec->splitpath($File::Find::name))[2]; - return if $filename ne '.wgaccess'; - open my $fh, '<', $File::Find::name or return; - local $/ = "\n"; - chomp (my ($user, $viewGroup, $editGroup) = <$fh>); - close $fh; - if ($user eq '1' || $viewGroup eq '1' || $viewGroup eq '7' || $editGroup eq '1' || $editGroup eq '7') { - unlink $File::Find::name; - } - }}, $uploadsPath); -} - ##------------------------------------------------- #sub exampleFunction { # my $session = shift; diff --git a/sbin/purgeWGAccess.pl b/sbin/purgeWGAccess.pl new file mode 100644 index 000000000..e28e714df --- /dev/null +++ b/sbin/purgeWGAccess.pl @@ -0,0 +1,30 @@ +use lib "../lib"; +use strict; +use Getopt::Long; +use WebGUI::Config; + +local $| = 1; #disable output buffering +GetOptions( + 'configFile=s' => \(my $configFile), + 'configFile=s' => \(my $configFile), +); +my $config = WebGUI::Config->new("..",$configFile); +use File::Find; + +print "\tRemoving unnecessary .wgaccess files.\n"; +my $uploadsPath = $config->get('uploadsPath'); +File::Find::find({wanted => sub { + my $filename = $_; + return + if -d $filename; # Skip directories + return + if $filename ne '.wgaccess'; # skip anything other than .wgaccess + open my $fh, '<', $filename or return; # skip files we can't open + chomp (my ($user, $viewGroup, $editGroup) = <$fh>); # slurp file as lines + close $fh; + # + if ($user eq '1' || $viewGroup eq '1' || $viewGroup eq '7' || $editGroup eq '1' || $editGroup eq '7') { + unlink $filename; + } +}}, $uploadsPath); +