Gantry::Control::C::Authz::PageBasedBase(3)

NAME
Gantry::Control::C::Authz::PageBasedBase - Page based access control.

SYNOPSIS
  use Gantry::Control::C::Authz::PageBasedSubClass;

DESCRIPTION
This handler is the authorization portion for page based authorization. It will authenticate only users who have been allowed from the administrative interface into a particular uri. The module returns FORBIDDEN if you do not have access to a particular uri.

APACHE
This is a sample of how to set up Authorization only on a location.

  <Location /location/to/auth >
    AuthType    Basic
    AuthName    "Manual"

    PerlSetVar  dbconn  "dbi:Pg:dbname=..."
    PerlSetVar  dbuser  "<database_username>"
    PerlSetVar  dbpass  "<database_password>"
    PerlSetVar  dbcommit  off

    PerlAuthenHandler Gantry::C::Control::AuthenSubClass
    PerlAuthzHandler  Gantry::C::Control::Authz::PageBasedSubClass

    require     valid-user
  </Location>

Choose a subclass to match your other database ORM scheme. Use Gantry::C::Control::Authz::PageBasedCDBI if you use Class::DBI (or something descended from it), otherwise use Gantry::C::Control::Authz::PageBasedRegular.

DATABASE
These are the authentication tables that this handler uses.

  create table "auth_pages" (
    "id"         int4 primary key default nextval('auth_pages_seq') NOT NULL,
    "user_perm"  int4,
    "group_perm" int4,
    "world_perm" int4,
    "owner_id"   int4,
    "group_id"   int4,
    "uri"        varchar,
    "title"      varchar
  );

  create table "auth_groups" (
    "id"          int4 primary key default nextval('auth_groups_seq') NOT NULL,
    "name"        varchar,
    "description" text
  );

  create table "auth_group_members" (
    "id"        int4 primary key default nextval('auth_group_members_seq')
                NOT NULL,
    "user_id"   int4,
    "group_id"  int4
  );

METHODS

handler
    The mod_perl page based authz handler.

do_requires
    For internal use.

lookup_uri
    For internal use.

SEE ALSO
Gantry::Control::C::Pages(3), Gantry::Control::C::Authz(3), Gantry::Control(3), Gantry(3)

LIMITATIONS
Pages must be defined for this to work, otherwise everything returns FORBIDDEN to the user.

AUTHOR
Tim Keefer <tkeefer@gmail.com>

COPYRIGHT
Copyright (c) 2005-6, Tim Keefer.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.