summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorRuss Allbery <rra@stanford.edu>2010-05-18 16:44:38 -0700
committerRuss Allbery <rra@stanford.edu>2010-05-18 16:45:04 -0700
commit4dbf126b079d87639d0a463770c3e72b5b53d5d1 (patch)
tree863b4d276ef6a327217272f558342931bea73e3a /server
parent7bed6b6110af7532fc4a49cdb425f7f668e17c21 (diff)
Add acls duplicate report
Add an acls duplicate report to wallet-report and Wallet::Report, returning sets of ACLs that have exactly the same entries.
Diffstat (limited to 'server')
-rwxr-xr-xserver/wallet-report25
1 files changed, 22 insertions, 3 deletions
diff --git a/server/wallet-report b/server/wallet-report
index 28d5b9a..466fe46 100755
--- a/server/wallet-report
+++ b/server/wallet-report
@@ -32,8 +32,14 @@ sub command {
if (!@acls and $report->error) {
die $report->error, "\n";
}
- for my $acl (sort { $$a[1] cmp $$b[1] } @acls) {
- print "$$acl[1] (ACL ID: $$acl[0])\n";
+ if (@args && $args[0] eq 'duplicate') {
+ for my $group (@acls) {
+ print join (' ', @$group), "\n";
+ }
+ } else {
+ for my $acl (sort { $$a[1] cmp $$b[1] } @acls) {
+ print "$$acl[1] (ACL ID: $$acl[0])\n";
+ }
}
} elsif ($command eq 'audit') {
die "too many arguments to audit\n" if @args > 2;
@@ -110,13 +116,16 @@ B<wallet-report> takes no traditional options.
=item acls
+=item acls duplicate
+
=item acls empty
=item acls entry <scheme> <identifier>
=item acls unused
-Returns a list of ACLs in the database. ACLs will be listed in the form:
+Returns a list of ACLs in the database. Except for the C<duplicate>
+report, ACLs will be listed in the form:
<name> (ACL ID: <id>)
@@ -124,6 +133,10 @@ where <name> is the human-readable name and <id> is the numeric ID. The
numeric ID is what's used internally by the wallet system. There will be
one line per ACL.
+For the C<duplicate> report, the output will instead be one duplicate set
+per line. This will be a set of ACLs that all have the same entries.
+Only the names will be given, separated by spaces.
+
If no search type is given, all the ACLs in the database will be returned.
If a search type (and possible search arguments) are given, then the ACLs
will be limited to those that match the search.
@@ -132,6 +145,12 @@ The currently supported ACL search types are:
=over 4
+=item acls duplicate
+
+Returns all sets of ACLs that are duplicates, meaning that they contain
+exactly the same entries. Each line will be the names of the ACLs in a
+set of duplicates, separated by spaces.
+
=item acls empty
Returns all ACLs which have no entries, generally so that abandoned ACLs