|
|
| |
SVN::Access(3) |
User Contributed Perl Documentation |
SVN::Access(3) |
SVN::Access - Perl extension to manipulate SVN Access files
use SVN::Access;
my $acl = SVN::Access->new(acl_file => '/usr/local/svn/conf/my_first_dot_com.conf');
# add a group to the config
$acl->add_group('stooges', qw/larry curly moe shemp/);
# write out the acl (thanks Gil)
$acl->write_acl;
# give the stooges commit access to the production version of
# our prized intellectual property, the free car giver-awayer..
# (thats how we get users to the site.)
$acl->add_resource(
# resource path
'/free_car_giver_awayer/branches/prod_1.21-sammy_hagar',
# permissions
'@stooges' => 'rw',
);
$acl->write_pretty; # with the equals signs all lined up.
SVN::Access includes both an object oriented interface for manipulating
SVN access files (AuthzSVNAccessFile files), as well as a command line
interface to that object oriented programming interface (svnaclmgr.pl)
in the examples/ directory.
- new
- the constructor, takes key / value pairs. only one is required.. in fact
only one is used right now. acl_file.
Example:
my $acl = SVN::Access->new(acl_file => '/path/to/my/acl.conf');
- add_resource
- adds a resource to the current acl object structure. note: the changes are
only to the object structure in memory, and one must call the
write_acl method, or the write_pretty method to commit them.
Example:
$acl->add_resource('/',
rick => 'rw',
steve => 'rw',
gibb => 'r',
);
- remove_resource
- removes a resource from the current acl object structure. as with
add_resource these changes are only to the object structure in
memory, and must be commited with a write_ method.
Example:
$acl->remove_resource('/');
- resources
- returns an array of resource objects, takes no arguments.
Example:
for($acl->resources) {
print $_->name . "\n";
}
- resource
- resolves a resource name to its SVN::Access::Resource object.
Example:
my $resource = $acl->resource('/');
- add_group
- adds a group to the current acl object structure. these changes are only
to the object structure in memory, and must be written out with
write_acl or write_pretty.
Example:
$acl->add_group('stooges', 'larry', 'curly', 'moe', 'shemp');
- remove_group
- removes a group from the current acl object structure. these changes are
only to the object structure in memory, and must be written out with
write_acl or write_pretty.
Example:
$acl->remove_group('stooges');
- groups
- returns an array of group objects, takes no arguments.
Example:
for($acl->groups) {
print $_->name . "\n";
}
- group
- resolves a group name to its SVN::Access::Group object.
Example:
$acl->group('pants_wearers')->add_member('ralph');
- write_acl
- takes no arguments, writes out the current acl object structure to the
acl_file specified in the constructor.
Example:
$acl->write_acl;
- write_pretty
- the same as write_acl, but does it with extra whitespace to line things
up.
Example:
$acl->write_pretty;
- verify_acl
- does a pre-flight check of the acl, and returns any errors found delimited
by new lines. this routine is called by write_acl and write_pretty, where
these errors will be considered fatal. be sure to either call this before
$acl->write_*, OR use eval { } to capture the
return of verify_acl into $@.
Example:
if (my $error = $acl->verify_acl) {
print "Problem found in your ACL: $error\n";
} else {
$acl->write_acl;
}
- add_alias
- adds an alias to [aliases], takes 2 arguments: the alias name and the
aliased user.
Example:
$acl->add_alias('mikey',
'uid=mgregorowicz,ou=people,dc=mg2,dc=org');
- remove_alias
- removes an alias by name, takes the alias name as an argument.
Example:
$acl->remove_alias('mikey');
- alias
- returns the value of an alias, uses exists() first so it will not
autovivify the key in the hash.
Example:
print $acl->alias('mikey') .
"\n";
- aliases
- returns a hashref that contains the aliases. editing this hashref will
edit the data inside the $acl object.
Example:
foreach my $alias (keys %{$acl->aliases}) {
print "$alias: " .
$acl->aliases->{$alias} . "\n";
}
- resolve
- Returns a fully resolved list of users part of the given groups and/or
aliases. Groups must be specified with a leading "@" and aliases
with a leading "&", all else will be returned verbatim. This
recurses through all definitions to get actual user names (so groups
within groups will be handled properly).
subversion (http://subversion.tigris.org/), SVN::ACL, svnserve.conf
Michael Gregorowicz, <mike@mg2.org>
Copyright (C) 2012-2017 by Michael Gregorowicz
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |