- SYNOPSIS
- DESCRIPTION
- METHODS
- Rights
  - LoadByValues PARAMHASH
  - Create <PARAMS>
  - Delete { InsideTransaction => undef}
  - _BootstrapCreate
  - InvalidateCaches
  - RegisterCacheHandler
  - CanonicalizeRightName <RIGHT>
  - Object
  - PrincipalObj
  - _CanonicalizePrincipal (PrincipalId, PrincipalType)
  - id
  - PrincipalType
  - SetPrincipalType VALUE
  - PrincipalId
  - SetPrincipalId VALUE
  - RightName
  - SetRightName VALUE
  - ObjectType
  - SetObjectType VALUE
  - ObjectId
  - SetObjectId VALUE
  - Creator
  - Created
  - LastUpdatedBy
  - LastUpdated

# SYNOPSIS

      use RT::ACE;
      my $ace = RT::ACE->new($CurrentUser);

# DESCRIPTION

# METHODS

# Rights

# Queue rights are the sort of queue rights that can only be granted # to real people or groups

## LoadByValues PARAMHASH

Load an ACE by specifying a paramhash with the following fields:

                  PrincipalId => undef,
                  PrincipalType => undef,
                  RightName => undef,

            And either:

                  Object => undef,

                OR

                  ObjectType => undef,
                  ObjectId => undef

## Create <PARAMS>

PARAMS is a parameter hash with the following elements:

       PrincipalId => The id of an RT::Principal object
       PrincipalType => "User" "Group" or any Role type
       RightName => the name of a right. in any case

        Either:

       Object => An object to create rights for. ususally, an RT::Queue or RT::Group
                 This should always be a DBIx::SearchBuilder::Record subclass

            OR

       ObjectType => the type of the object in question (ref ($object))
       ObjectId => the id of the object in question $object->Id

       Returns a tuple of (STATUS, MESSAGE);  If the call succeeded, STATUS is true. Otherwise it's false.

## Delete { InsideTransaction => undef}

Delete this object. This method should ONLY ever be called from RT::User or RT::Group (or from itself) If this is being called from within a transaction, specify a true value for the parameter InsideTransaction. Really, DBIx::SearchBuilder should use and/or fake subtransactions

This routine will also recurse and delete any delegations of this right

## _BootstrapCreate

Grant a right with no error checking and no ACL. this is _only_ for installation. If you use this routine without the author's explicit written approval, he will hunt you down and make you spend eternity translating mozilla's code into FORTRAN or intercal.

If you think you need this routine, you've mistaken.

## InvalidateCaches

Calls any registered ACL cache handlers (see "RegisterCacheHandler").

Usually called from "Create" and "Delete".

## RegisterCacheHandler

Class method. Takes a coderef and adds it to the ACL cache handlers. These handlers are called by "InvalidateCaches", usually called itself from "Create" and "Delete".

The handlers are passed a hash which may contain any (or none) of these optional keys:

Action

  A string indicating the action that (may have) invalidated the cache. Expected values are currently:

  Grant
  Revoke

  However, other values may be passed in the future.

RightName

  The (canonicalized) right being granted or revoked.

ACE

  The RT::ACE object just created.

Your handler should be flexible enough to account for additional arguments being passed in the future.

## CanonicalizeRightName <RIGHT>

Takes a queue or system right name in any case and returns it in the correct case. If it's not found, will return undef.

## Object

If the object this ACE applies to is a queue, returns the queue object. If the object this ACE applies to is a group, returns the group object. If it's the system object, returns undef.

If the user has no rights, returns undef.

## PrincipalObj

Returns the RT::Principal object for this ACE.

## _CanonicalizePrincipal (PrincipalId, PrincipalType)

Takes a principal id and a principal type.

If the principal is a user, resolves it to the proper acl equivalence group. Returns a tuple of (RT::Principal, PrincipalType) for the principal we really want to work with

## id

Returns the current value of id. (In the database, id is stored as int(11).)

## PrincipalType

Returns the current value of PrincipalType. (In the database, PrincipalType is stored as varchar(25).)

## SetPrincipalType VALUE

Set PrincipalType to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, PrincipalType will be stored as a varchar(25).)

## PrincipalId

Returns the current value of PrincipalId. (In the database, PrincipalId is stored as int(11).)

## SetPrincipalId VALUE

Set PrincipalId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, PrincipalId will be stored as a int(11).)

## RightName

Returns the current value of RightName. (In the database, RightName is stored as varchar(25).)

## SetRightName VALUE

Set RightName to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, RightName will be stored as a varchar(25).)

## ObjectType

Returns the current value of ObjectType. (In the database, ObjectType is stored as varchar(25).)

## SetObjectType VALUE

Set ObjectType to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, ObjectType will be stored as a varchar(25).)

## ObjectId

Returns the current value of ObjectId. (In the database, ObjectId is stored as int(11).)

## SetObjectId VALUE

Set ObjectId to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. (In the database, ObjectId will be stored as a int(11).)

## Creator

Returns the current value of Creator. (In the database, Creator is stored as int(11).)

## Created

Returns the current value of Created. (In the database, Created is stored as datetime.)

## LastUpdatedBy

Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).)

## LastUpdated

Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.)

← Back to index