CGI::Application::Plugin::Authorization::Driver::SimpleGroup.3pm

Langue: en

Version: 2008-09-17 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

CGI::Application::Plugin::Authorization::Driver::SimpleGroup - 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.

SEE ALSO

CGI::Application::Plugin::Authorization::Driver, CGI::Application::Plugin::Authorization, perl(1) 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.