rt 4.0.23
[freeside.git] / rt / lib / RT / Base.pm
index 72c3adf..838bad0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -51,6 +51,7 @@ use Carp ();
 use Scalar::Util ();
 
 use strict;
+use warnings;
 use vars qw(@EXPORT);
 
 @EXPORT=qw(loc CurrentUser);
@@ -68,7 +69,6 @@ RT::Base
 
 =cut
 
-# {{{ sub CurrentUser 
 
 =head2 CurrentUser
 
@@ -87,7 +87,7 @@ sub CurrentUser {
         $self->{'original_user'} = $self->{'user'};
         my $current_user = $_[0];
         if ( ref $current_user eq 'RT::User' ) {
-            $self->{'user'} = new RT::CurrentUser;
+            $self->{'user'} = RT::CurrentUser->new;
             $self->{'user'}->Load( $current_user->id );
         } else {
             $self->{'user'} = $current_user;
@@ -99,20 +99,9 @@ sub CurrentUser {
             if ref $self->{'user'} && $self->{'user'} == $self;
     }
 
-    unless ( ref $self->{'user'} && $self->{'user'}->isa('RT::CurrentUser') ) {
-        my $msg = "$self was created without a CurrentUser."
-            ." Any RT object which is subclass of RT::Base must be created"
-            ." with a RT::CurrentUser or a RT::User object as the first argument.";
-        $msg .= "\n". Carp::longmess() if @_;
-
-        $RT::Logger->error( $msg );
-        return $self->{'user'} = undef;
-    }
-
     return ( $self->{'user'} );
 }
 
-# }}}
 
 sub OriginalUser {
     my $self = shift;
@@ -163,10 +152,17 @@ sub loc_fuzzy {
     }
 }
 
-eval "require RT::Base_Vendor";
-die $@ if ($@ && $@ !~ qr{^Can't locate RT/Base_Vendor.pm});
-eval "require RT::Base_Local";
-die $@ if ($@ && $@ !~ qr{^Can't locate RT/Base_Local.pm});
+sub _ImportOverlays {
+    my $class = shift;
+    my ($package,undef,undef) = caller();
+    $package =~ s|::|/|g;
+    for my $type (qw(Overlay Vendor Local)) {
+        my $filename = $package."_".$type.".pm";
+        eval { require $filename };
+        die $@ if ($@ && $@ !~ m{^Can't locate $filename});
+    }
+}
 
+__PACKAGE__->_ImportOverlays();
 
 1;