[Rt-devel] Two patches
Todd Chapman
todd at chaka.net
Thu May 18 17:22:22 EDT 2006
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
-------------- next part --------------
=== 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";
}
}
-------------- next part --------------
=== 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
More information about the Rt-devel
mailing list