Two patches

The first patch fixes a broken regexp.

The second simplifies the logic for Queue::AddWatcher.
Lett CurrentUserHasRight calls are potentially made too.
(yes, I know it is cached)

Why all then parens around arguments to return?

-Todd

irregular_expression.patch (773 Bytes)

add_watcher.patch (2.21 KB)

BTW, all regression tests pass.On Thu, May 18, 2006 at 05:22:22PM -0400, Todd Chapman wrote:

The first patch fixes a broken regexp.

The second simplifies the logic for Queue::AddWatcher.
Lett CurrentUserHasRight calls are potentially made too.
(yes, I know it is cached)

Why all then parens around arguments to return?

-Todd

=== html/Ticket/Elements/Tabs

— html/Ticket/Elements/Tabs (revision 6963)
+++ html/Ticket/Elements/Tabs (local)
@@ -213,13 +213,13 @@
title => loc(‘Show Results’),
separator => 1,
subtabs => $searchtabs };

  • if ($current_tab =~ “Search/Results.html”) {
  • if ($current_tab =~ m{Search/Results.html}) {
    $current_tab = “Search/Results.html$args”;
    }
    $tabs->{“j”} = { path => “Search/Bulk.html$args”,
    title => loc(‘Bulk Update’),
    };
  • if ($current_tab =~ “Search/Bulk.html”) {
  • if ($current_tab =~ m{Search/Bulk.html}) {
    $current_tab = “Search/Bulk.html$args”;
    }
    }

=== lib/RT/Queue_Overlay.pm

— lib/RT/Queue_Overlay.pm (revision 6963)
+++ lib/RT/Queue_Overlay.pm (local)
@@ -648,44 +648,31 @@
);

 # {{{ Check ACLS
  • return ( $self->_AddWatcher(%args) )
  •    if $self->CurrentUserHasRight('ModifyQueueWatchers');
    
  • #If the watcher we’re trying to add is for the current user
    if ( $self->CurrentUser->PrincipalId eq $args{‘PrincipalId’}) {
    # If it’s an AdminCc and they don’t have
    # ‘WatchAsAdminCc’ or ‘ModifyTicket’, bail
    if ( $args{‘Type’} eq ‘AdminCc’ ) {
  •        unless ( $self->CurrentUserHasRight('ModifyQueueWatchers')
    
  •            or $self->CurrentUserHasRight('WatchAsAdminCc') ) {
    
  •            return ( 0, $self->loc('Permission Denied'))
    
  •        }
    
  •            return ( $self->_AddWatcher(%args) )
    
  •                if $self->CurrentUserHasRight('WatchAsAdminCc');
       }
    
       #  If it's a Requestor or Cc and they don't have
       #   'Watch' or 'ModifyTicket', bail
    
  •    elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) {
    
  •        unless ( $self->CurrentUserHasRight('ModifyQueueWatchers')
    
  •            or $self->CurrentUserHasRight('Watch') ) {
    
  •            return ( 0, $self->loc('Permission Denied'))
    
  •        }
    
  •    elsif ( $args{'Type'} eq 'Cc' or $args{'Type'} eq 'Requestor' ) {
    
  •            return ( $self->_AddWatcher(%args) )
    
  •                if $self->CurrentUserHasRight('Watch');
       }
    
  • else {
    
  •    else {
           $RT::Logger->warning( "$self -> AddWatcher got passed a bogus type");
           return ( 0, $self->loc('Error in parameters to Queue->AddWatcher') );
       }
    
    }
  • If the watcher isn’t the current user

  • and the current user doesn’t have ‘ModifyQueueWatcher’

  • bail

  • else {
  •    unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') ) {
    
  •        return ( 0, $self->loc("Permission Denied") );
    
  •    }
    
  • }
  • }}}

  • return ( $self->_AddWatcher(%args) );
  • return ( 0, $self->loc(“Permission Denied”) );
    }

#This contains the meat of AddWatcher. but can be called from a routine like


List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel

Best Practical is hiring! Come hack Perl for us: http://bestpractical.com/about/jobs.html