diff options
Diffstat (limited to 'lib/Youri/Upload/Check/ACL.pm')
-rw-r--r-- | lib/Youri/Upload/Check/ACL.pm | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/lib/Youri/Upload/Check/ACL.pm b/lib/Youri/Upload/Check/ACL.pm deleted file mode 100644 index 9e19e35..0000000 --- a/lib/Youri/Upload/Check/ACL.pm +++ /dev/null @@ -1,72 +0,0 @@ -# $Id: Tag.pm 867 2006-04-11 20:34:56Z guillomovitch $ -package Youri::Upload::Check::ACL; - -=head1 NAME - -Youri::Upload::Check::Tag - Incorrect tag values check - -=head1 DESCRIPTION - -This check plugin rejects packages with incorrect tag values, based on regular -expressions. - -=cut - -use strict; -use Carp; -use base qw/Youri::Upload::Check/; -my $acl; - -sub _init { - my $self = shift; - my %options = ( - acl_file => '', - @_ - ); - $acl = get_acl($options{acl_file}); -} - -sub run { - my ($self, $package, $repository, $target, $define) = @_; - croak "Not a class method" unless ref $self; - my $file = $package->get_full_name(); - my $arch = $package->get_arch(); - my $srpm = $package->get_canonical_name; - my $section = $repository->_get_section($package, $target, $define); - my $user = $define->{user}; - foreach my $t (keys %$acl) { - next if $target !~ /$t/; - foreach my $acl (@{$acl->{$t}}) { - my ($arch, $media, $r, $users) = @$acl; - next if $arch !~ $a || $srpm !~ $r || $media !~ $media; - if ($user =~ /$users/) { - return 1 - } else { - $self->{_error} = "$user is not authorized to upload packages belonging to $srpm (authorized persons: " . join(', ', split '\|', $users) . ")"; - return 0 - } - } - } - 1 -} - -sub get_acl { - my ($file) = @_; - my %acl; - open my $f, $file; - while (<$f>) { - my ($dis, $arch, $media, $regexp, $users) = split ' '; - push @{$acl{$dis}}, [ $arch , $media, $regexp, $users ] - } - \%acl -} - -=head1 COPYRIGHT AND LICENSE - -Copyright (C) 2002-2006, YOURI project - -This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. - -=cut - -1; |