[Rt-commit] rt branch, master, updated. rt-4.1.13-22-ged04925

Alex Vandiver alexmv at bestpractical.com
Tue Jun 18 21:38:24 EDT 2013


The branch, master has been updated
       via  ed04925a522fe0d1e057689747f970732e89d7f5 (commit)
       via  bf4ead862432d19a8864ac79b11d6e94bd37dad3 (commit)
       via  add166d6a1685f9beb4a9973370f642ee590df53 (commit)
       via  e520353705a984dcfb72d8c4bf21bb36102f90d6 (commit)
      from  f3491047b00f4ea2452fc231946fb604f7b72e7a (commit)

Summary of changes:
 lib/RT/Tickets.pm                           | 130 +++++++---------------------
 share/html/Search/Elements/PickBasics       |  13 +++
 share/html/Search/Elements/SelectPersonType |   4 +-
 t/ticket/search_by_watcher_group.t          |  75 ++++++++++++++++
 4 files changed, 120 insertions(+), 102 deletions(-)
 create mode 100644 t/ticket/search_by_watcher_group.t

- Log -----------------------------------------------------------------
commit ed04925a522fe0d1e057689747f970732e89d7f5
Merge: f349104 bf4ead8
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Jun 18 18:29:05 2013 -0700

    Merge branch '4.2/xxxgroup-ticketsql'
    
    Conflicts:
    	lib/RT/Tickets.pm

diff --cc lib/RT/Tickets.pm
index 126bdc3,c520643..8fdac80
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@@ -954,71 -924,38 +926,38 @@@ Meta Data
  =cut
  
  sub _WatcherMembershipLimit {
-     my ( $self, $field, $op, $value, @rest ) = @_;
-     my %rest = @rest;
- 
-     $self->_OpenParen;
- 
-     my $groups       = $self->NewAlias('Groups');
-     my $groupmembers = $self->NewAlias('CachedGroupMembers');
-     my $users        = $self->NewAlias('Users');
-     my $memberships  = $self->NewAlias('CachedGroupMembers');
- 
-     $self->Limit(
-         ALIAS    => $memberships,
-         FIELD    => 'GroupId',
-         VALUE    => $value,
-         OPERATOR => $op,
-         @rest,
-     );
- 
-     # Tie to groups for tickets we care about
-     $self->Limit(
-         ALIAS           => $groups,
-         FIELD           => 'Domain',
-         VALUE           => 'RT::Ticket-Role',
-         ENTRYAGGREGATOR => 'AND',
-         CASESENSITIVE   => 0,
-     );
+     my ( $self, $field, $op, $value, %rest ) = @_;
  
-     $self->Join(
-         ALIAS1 => $groups,
-         FIELD1 => 'Instance',
-         ALIAS2 => 'main',
-         FIELD2 => 'id'
-     );
+     # we don't support anything but '='
+     die "Invalid $field Op: $op"
+         unless $op =~ /^=$/;
  
-     # }}}
+     unless ( $value =~ /^\d+$/ ) {
+         my $group = RT::Group->new( $self->CurrentUser );
+         $group->LoadUserDefinedGroup( $value );
+         $value = $group->id || 0;
+     }
  
-     # If we care about which sort of watcher
      my $meta = $FIELD_METADATA{$field};
-     my $type = ( defined $meta->[1] ? $meta->[1] : undef );
+     my $type = $meta->[1] || '';
  
-     if ($type) {
-         $self->Limit(
-             ALIAS           => $groups,
-             FIELD           => 'Name',
-             VALUE           => $type,
-             ENTRYAGGREGATOR => 'AND'
-         );
+     my ($members_alias, $members_column);
+     if ( $type eq 'Owner' ) {
+         ($members_alias, $members_column) = ('main', 'Owner');
+     } else {
 -        (undef, undef, $members_alias) = $self->_WatcherJoin( New => 1, Type => $type );
++        (undef, undef, $members_alias) = $self->_WatcherJoin( New => 1, Name => $type );
+         $members_column = 'id';
      }
  
-     $self->Join(
-         ALIAS1 => $groups,
-         FIELD1 => 'id',
-         ALIAS2 => $groupmembers,
-         FIELD2 => 'GroupId'
-     );
- 
-     $self->Join(
-         ALIAS1 => $groupmembers,
-         FIELD1 => 'MemberId',
-         ALIAS2 => $users,
-         FIELD2 => 'id'
+     my $cgm_alias = $self->Join(
+         ALIAS1          => $members_alias,
+         FIELD1          => $members_column,
+         TABLE2          => 'CachedGroupMembers',
+         FIELD2          => 'MemberId',
      );
- 
      $self->Limit(
-         ALIAS => $groupmembers,
+         LEFTJOIN => $cgm_alias,
+         ALIAS => $cgm_alias,
          FIELD => 'Disabled',
          VALUE => 0,
      );

-----------------------------------------------------------------------


More information about the Rt-commit mailing list