RT::ACE(3)

NAME
  RT::ACE - RT\'s ACE object

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

DESCRIPTION

METHODS

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

              PrincipalId => undef,
              PrincipalType => undef,
              RightName => undef,
              RightScope => undef,
              RightAppliesTo => undef,

  Create <PARAMS>
PARAMS is a parameter hash with the following elements:

   PrincipalType => "Queue"|"User"
   PrincipalId => an intentifier you can use to ->Load a user or group
   RightName => the name of a right. in any case
   RightScope => "System" | "Queue"
   RightAppliesTo => a queue id or undef

  Delete
Delete this object.

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

  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.

  QueueRights
Returns a hash of all the possible rights at the queue scope

  SystemRights
Returns a hash of all the possible rights at the system scope

  AppliesToObj
If the AppliesTo is a queue, returns the queue object. If it's the system object, returns undef. If the user has no rights, returns undef.

  PrincipalObj
If the AppliesTo is a group, returns the group object. If the AppliesTo is a user, returns the user object. Otherwise, it logs a warning and returns undef.

  CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME )
Check to see whether the current user has the specified right for the specified queue.

  CurrentUserHasSystemRight RIGHTNAME
Check to see whether the current user has the specified right for the 'system' scope.

CurrentUserHasRight RIGHT Takes a rightname as a string.
    Helper menthod for HasRight. Presets Principal to CurrentUser then calls HasRight.

HasRight
    Takes a param-hash consisting of "Right" and "Principal" Principal is an RT::User object or an RT::CurrentUser object. "Right" is a textual Right string that applies to KeywordSelects

Out of date docs

  Table Structure
PrincipalType, PrincipalId, Right,Scope,AppliesTo

The docs are out of date. so you know.

Scopes
Scope is the scope of the right granted, not the granularity of the grant. For example, Queue and Ticket rights are both granted for a "queue." Rights with a scope of 'System' don't have an AppliesTo. (They're global). Rights with a scope of "Queue" are rights that act on a queue. Rights with a scope of "System" are rights that act on some other aspect of the system.

Queue =item System

Rights

  Scope: Queue

  Queue rights that apply to a ticket within a queue
Create Ticket in <queue>

        Name: Create
        Principals: <user> <group>
Display Ticket Summary in <queue>

        Name: Show
        Principals: <user> <group> Owner Requestor Cc AdminCc

Display Ticket History <queue>

        Name: ShowHistory
        Principals: <user> <group> Owner Requestor Cc AdminCc

Display Ticket Private Comments <queue>

        Name: ShowComments
        Principals: <user> <group> Owner Requestor Cc AdminCc

Reply to Ticket in <queue>

        Name: Reply
        Principals: <user> <group> Owner Requestor Cc AdminCc

Comment on Ticket in <queue>

        Name: Comment
        Principals: <user> <group> Owner Requestor Cc AdminCc

Modify Ticket in <queue>

        Name: Modify
        Principals: <user> <group> Owner Requestor Cc AdminCc

Delete Tickets in <queue>

        Name: Delete
        Principals: <user> <group> Owner Requestor Cc AdminCc

  Queue Rights that apply to a whole queue
These rights can only be granted to "real people"

List Tickets in <queue>

        Name: ListQueue
        Principals: <user> <group>

Know that <queue> exists

    Name: See
    Principals: <user> <group>

Display queue settings

    Name: Explore
    Principals: <user> <group>

Modify Queue Watchers for <queue>

        Name: ModifyQueueWatchers
        Principals: <user> <group>

Modify Queue Attributes for <queue>

        Name: ModifyQueue
        Principals: <user> <group>

Modify Queue ACL for queue <queue>

        Name: ModifyACL
        Principals: <user> <group>

  Rights that apply to the System scope

  SystemRights
Create Queue

        Name: CreateQueue
        Principals: <user> <group>
Delete Queue

        Name: DeleteQueue
        Principals: <user> <group>

Create Users

        Name: CreateUser
        Principals: <user> <group>

Delete Users

        Name: DeleteUser
        Principals: <user> <group>

Modify Users

        Name: ModifyUser
        Principals: <user> <group>

Modify Self
        Name: ModifySelf
    Principals: <user> <group>

Browse Users

        Name: BrowseUsers (NOT IMPLEMENTED in 2.0)
        Principals: <user> <group>

Modify Self

        Name: ModifySelf
        Principals: <user> <group>

Modify System ACL

        Name: ModifyACL
        Principals: <user> <group>

The Principal Side of the ACE

  PrincipalTypes,PrincipalIds in our Neighborhood
  User,<userid>
  Group,<groupip>
  Everyone,NULL

POD ERRORS
Hey! The above document had some coding errors, which are explained below:

Around line 542:
    '=item' outside of any '=over'

Around line 614:
    You forgot a '=back' before '=head1'

Around line 632:
    '=item' outside of any '=over'

Around line 636:
    You forgot a '=back' before '=head1'