logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Apache2::SiteControl::Rule - Permission manager access rule.

Author

       This module was written by Tony Kay, <tkay@uoregon.edu>.

Export

       None by default.

Name

       Apache2::SiteControl::Rule - Permission manager access rule.

   DESCRIPTION
       Each rule is a custom-written class that implements some aspect of your site's access logic. Rules can
       choose to grant or deny a request.

          package sample::Test;

          use strict;
          use warnings;
          use Carp;
          use Apache2::SiteControl::Rule;

          use base qw(Apache2::SiteControl::Rule);

          sub grants($$$$)
          {
             my $this = shift;
             my $user = shift;
             my $action = shift;
             my $resource = shift;

             if($action eq "edit" && $resource->isa("sample::Record")) {
                return 1 if($user{name} eq "root");
             }

             return 0;
          }

          sub denies($$$$)
          {
             return 0;
          }

          1;

       The PermissionManager will only give permission if atleast one rule grants permission, andno rule
       denies it.

       It is important that your rules never grant or deny a request they do not understand, so it is a good
       idea to use type checking to prevent strangeness.  Assertionsshouldnotbeused if you expect different
       rules to accept different resource types or user types, since each rule is used on every access request.

See Also

       Apache2::SiteControl::UserFactory, Apache::SiteControl::ManagerFactory,
       Apache2::SiteControl::PermissionManager, Apache::SiteControl

See Also