94 lines
2.5 KiB
Perl
Executable file
94 lines
2.5 KiB
Perl
Executable file
#!/usr/bin/env perl
|
|
|
|
#-------------------------------------------------------------------
|
|
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
|
#-------------------------------------------------------------------
|
|
# Please read the legal notices (docs/legal.txt) and the license
|
|
# (docs/license.txt) that came with this distribution before using
|
|
# this software.
|
|
#-------------------------------------------------------------------
|
|
# http://www.plainblack.com info@plainblack.com
|
|
#-------------------------------------------------------------------
|
|
|
|
use strict;
|
|
use File::Basename ();
|
|
use File::Spec;
|
|
|
|
my $webguiRoot;
|
|
BEGIN {
|
|
$webguiRoot = File::Spec->rel2abs(File::Spec->catdir(File::Basename::dirname(__FILE__), File::Spec->updir));
|
|
unshift @INC, File::Spec->catdir($webguiRoot, 'lib');
|
|
}
|
|
|
|
use Getopt::Long;
|
|
use Pod::Usage;
|
|
use WebGUI::Config;
|
|
|
|
local $| = 1; #disable output buffering
|
|
GetOptions(
|
|
'configFile=s' => \(my $configFile),
|
|
'help' => \(my $help),
|
|
);
|
|
|
|
pod2usage( verbose => 2 ) if $help;
|
|
pod2usage() if $configFile eq '';
|
|
|
|
my $config = WebGUI::Config->new($webguiRoot,$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);
|
|
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
purgeWGAccess - Clean up unneeded .wgaccess files from WebGUI repository
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
purgeWGAccess --configFile config.conf
|
|
|
|
purgeWGAccess --help
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This WebGUI utility script removes unneeded .wgaccess files from
|
|
a specific site's upload directory. The script finds all the
|
|
.wgaccess files recursively starting from the upload path for
|
|
the WebGUI site specified in the given configuration file and
|
|
removes it.
|
|
|
|
=over
|
|
|
|
=item B<--configFile config.conf>
|
|
|
|
The WebGUI config file to use. Only the file name needs to be specified,
|
|
since it will be looked up inside WebGUI's configuration directory.
|
|
This parameter is required.
|
|
|
|
=item B<--help>
|
|
|
|
Shows this documentation, then exits.
|
|
|
|
=back
|
|
|
|
=head1 AUTHOR
|
|
|
|
Copyright 2001-2009 Plain Black Corporation.
|
|
|
|
=cut
|