SYNOPSIS
use base qw(CGI::Application);
use CGI::Application::Plugin::Authorization;
__PACKAGE__->authz->config(
DRIVER => [ 'SimpleGroup' ],
# You are responsible for setting a group param somehow!
GET_USERNAME => sub { my $authz = shift; return $authz->cgiapp->session->param('group') },
);
DESCRIPTION
This driver achieves simplicity by assuming that the "username" method of 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 authorizeEXAMPLE
use base qw(CGI::Application); use CGI::Application::Plugin::Authorization; __PACKAGE__->authz->config( DRIVER => [ 'SimpleGroup' ], # You are responsible for setting a group param somehow! GET_USERNAME => sub { my $authz = shift; return $authz->cgiapp->session->param('group'); }, ); sub cgiapp_prerun { my $self = shift; # here is an example of how you could set the # group param that will be tested later if ($ENV{REMOTE_USER} eq 'mark') { $self->session->param('group' => 'admin'); } } sub my_runmode { my $self = shift; # make sure the user has 'admin' privileges return $self->authz->forbidden unless $self->authz->authorize('admin'); # if we get here the user has 'admin' privileges }
METHODS
authorize_user
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.
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.