CGI::Application::Plugin::Authorization::Driver::SimpleGroup(3) Simple Group based Authorization driver

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 authorize

EXAMPLE

 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.