selectable choice for arbitrary fields, RT#25623
[freeside.git] / rt / lib / RT / Principal_Overlay.pm
index 2ceca46..9207050 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -163,6 +163,8 @@ sub GrantRight {
 
     my $type = $self->_GetPrincipalTypeForACL();
 
 
     my $type = $self->_GetPrincipalTypeForACL();
 
+    RT->System->QueueCacheNeedsUpdate(1) if $args{'Right'} eq 'SeeQueue';
+
     # If it's a user, we really want to grant the right to their 
     # user equivalence group
     return $ace->Create(
     # If it's a user, we really want to grant the right to their 
     # user equivalence group
     return $ace->Create(
@@ -210,15 +212,17 @@ sub RevokeRight {
         PrincipalType => $type,
         PrincipalId   => $self->Id
     );
         PrincipalType => $type,
         PrincipalId   => $self->Id
     );
+
+    RT->System->QueueCacheNeedsUpdate(1) if $args{'Right'} eq 'SeeQueue';
     return ($status, $msg) unless $status;
     return $ace->Delete;
 }
 
 # }}}
 
     return ($status, $msg) unless $status;
     return $ace->Delete;
 }
 
 # }}}
 
-# {{{ sub _CleanupInvalidDelegations
+# {{{ sub CleanupInvalidDelegations
 
 
-=head2 sub _CleanupInvalidDelegations { InsideTransaction => undef }
+=head2 sub CleanupInvalidDelegations { InsideTransaction => undef }
 
 Revokes all ACE entries delegated by this principal which are
 inconsistent with this principal's current delegation rights.  Does
 
 Revokes all ACE entries delegated by this principal which are
 inconsistent with this principal's current delegation rights.  Does
@@ -240,15 +244,19 @@ and logs an internal error if the deletion fails (should not happen).
 # This is currently just a stub for the methods of the same name in
 # RT::User and RT::Group.
 
 # This is currently just a stub for the methods of the same name in
 # RT::User and RT::Group.
 
-sub _CleanupInvalidDelegations {
+# backcompat for 3.8.8 and before
+*_CleanupInvalidDelegations = \&CleanupInvalidDelegations;
+
+sub CleanupInvalidDelegations {
     my $self = shift;
     unless ( $self->Id ) {
        $RT::Logger->warning("Principal not loaded.");
        return (undef);
     }
     my $self = shift;
     unless ( $self->Id ) {
        $RT::Logger->warning("Principal not loaded.");
        return (undef);
     }
-    return ($self->Object->_CleanupInvalidDelegations(@_));
+    return ($self->Object->CleanupInvalidDelegations(@_));
 }
 
 }
 
+
 # }}}
 
 # {{{ sub HasRight
 # }}}
 
 # {{{ sub HasRight