forked from plainblack/webgui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
purgeWGAccess.pl
90 lines (66 loc) · 2.39 KB
/
purgeWGAccess.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2008 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
#-------------------------------------------------------------------
our ($webguiRoot);
BEGIN {
$webguiRoot = "..";
unshift (@INC, $webguiRoot."/lib");
}
use strict;
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-2008 Plain Black Corporation.
=cut