Subject: | PATCH: new Simpe driver |
Attached is a new "Simple" driver, which requires no configuration yet
is still useful!
Mark
Subject: | Simple.pm |
package CGI::Application::Plugin::Authorization::Driver::Simple;
use strict;
use warnings;
use base qw(CGI::Application::Plugin::Authorization::Driver);
=head1 NAME
CGI::Application::Plugin::Authorization::Driver::Simple - Simple Authorization driver
=head1 SYNOPSIS
use base qw(CGI::Application);
use CGI::Application::Plugin::Authorization;
__PACKAGE__->authz->config(
DRIVER => [ 'Simple' ],
# You are responsible for setting a group param somehow!
GET_USERNAME => sub { my $authz = shift; return $authz->cgiapp->session->param('group') },
);
=head1 DESCRIPTION
This driver achieves simplicity by assuming that the C<username> method of
L<CGI::Application::Plugin::Authorization> will return a group rather than a
username. Thus it can be directly compared with the list of authorized groups passed
to L<authorize>
=head1 METHODS
=head2 authorize_user
I<This method is not intended to be used directly. Just follow the SYNOPSIS>.
This method accepts a username followed by a list of group names and will
return true if the user belongs to at least one of the groups.
=cut
sub authorize_user {
my $self = shift;
my $username = shift;
my @groups = @_;
foreach my $group (@groups) {
return 1 if ($username eq $group);
}
return 0;
}
=head1 SEE ALSO
L<CGI::Application::Plugin::Authorization::Driver>, L<CGI::Application::Plugin::Authorization>, perl(1)
=head1 LICENCE AND COPYRIGHT
Copyright (c) 2006, Mark Stosberg. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
=cut
1;