import of rt 3.0.4
[freeside.git] / rt / lib / RT / Groups.pm
index f44f1fd..29f12a5 100755 (executable)
-#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Groups.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>)
+# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.  
+# 
+# !! DO NOT EDIT THIS FILE !!
+#
+
+use strict;
 
-=head1 NAME
 
-  RT::Groups - a collection of RT::Group objects
+=head1 NAME
 
+  RT::Groups -- Class Description
 =head1 SYNOPSIS
 
-  use RT::Groups;
-  my $groups = $RT::Groups->new($CurrentUser);
-  $groups->LimitToReal();
-  while (my $group = $groups->Next()) {
-     print $group->Id ." is a group id\n";
-  }
+  use RT::Groups
 
 =head1 DESCRIPTION
 
 
 =head1 METHODS
 
-
-=begin testing
-
-ok (require RT::TestHarness);
-ok (require RT::Groups);
-
-=end testing
-
 =cut
 
 package RT::Groups;
-use RT::EasySearch;
-use RT::Groups;
 
-@ISA= qw(RT::EasySearch);
+use RT::SearchBuilder;
+use RT::Group;
 
-# {{{ sub _Init
+use vars qw( @ISA );
+@ISA= qw(RT::SearchBuilder);
 
-sub _Init { 
-  my $self = shift;
-  $self->{'table'} = "Groups";
-  $self->{'primary_key'} = "id";
 
-  $self->OrderBy( ALIAS => 'main',
-                 FIELD => 'Name',
-                 ORDER => 'ASC');
+sub _Init {
+    my $self = shift;
+    $self->{'table'} = 'Groups';
+    $self->{'primary_key'} = 'id';
 
 
-  return ( $self->SUPER::_Init(@_));
+    return ( $self->SUPER::_Init(@_) );
 }
-# }}}
 
-# {{{ LimitToReal
 
-=head2 LimitToReal
+=item NewItem
 
-Make this groups object return only "real" groups, which can be
-granted rights and have members assigned to them
+Returns an empty new RT::Group item
 
 =cut
 
-sub LimitToReal {
+sub NewItem {
     my $self = shift;
+    return(RT::Group->new($self->CurrentUser));
+}
 
-    return ($self->Limit( FIELD => 'Pseudo',
-                         VALUE => '0',
-                         OPERATOR => '='));
+        eval "require RT::Groups_Overlay";
+        if ($@ && $@ !~ qr{^Can't locate RT/Groups_Overlay.pm}) {
+            die $@;
+        };
 
-}
-# }}}
+        eval "require RT::Groups_Vendor";
+        if ($@ && $@ !~ qr{^Can't locate RT/Groups_Vendor.pm}) {
+            die $@;
+        };
 
-# {{{ sub LimitToPseudo
+        eval "require RT::Groups_Local";
+        if ($@ && $@ !~ qr{^Can't locate RT/Groups_Local.pm}) {
+            die $@;
+        };
 
-=head2 LimitToPseudo
 
-Make this groups object return only "pseudo" groups, which can be
-granted rights but whose membership lists are determined dynamically.
 
-=cut
-  
-  sub LimitToPseudo {
-    my $self = shift;
 
-    return ($self->Limit( FIELD => 'Pseudo',
-                         VALUE => '1',
-                         OPERATOR => '='));
+=head1 SEE ALSO
 
-}
-# }}}
+This class allows "overlay" methods to be placed
+into the following files _Overlay is for a System overlay by the original author,
+_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations.  
 
-# {{{ sub NewItem 
-sub NewItem  {
-  my $self = shift;
-  return (RT::Group->new($self->CurrentUser));
-}
-# }}}
+These overlay files can contain new subs or subs to replace existing subs in this module.
 
+If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line 
 
-1;
+   no warnings qw(redefine);
+
+so that perl does not kick and scream when you redefine a subroutine or variable in your overlay.
 
+RT::Groups_Overlay, RT::Groups_Vendor, RT::Groups_Local
+
+=cut
+
+
+1;