correct unused-time credits for discounted packages, #16352
[freeside.git] / rt / lib / RT / User.pm
index b7ebd5b..cbc10f5 100755 (executable)
@@ -1,51 +1,26 @@
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
-#                                          <sales@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
+# 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 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.
 # 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.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-
+# 
+# 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.  
 # 
 # Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>)
 # WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.  
 # 
@@ -86,7 +61,7 @@ sub _Init {
 
 
 
 
 
 
-=head2 Create PARAMHASH
+=item Create PARAMHASH
 
 Create takes a hash of values and creates a row in the database:
 
 
 Create takes a hash of values and creates a row in the database:
 
@@ -195,7 +170,7 @@ sub Create {
 
 
 
 
 
 
-=head2 id
+=item id
 
 Returns the current value of id. 
 (In the database, id is stored as int(11).)
 
 Returns the current value of id. 
 (In the database, id is stored as int(11).)
@@ -204,14 +179,14 @@ Returns the current value of id.
 =cut
 
 
 =cut
 
 
-=head2 Name
+=item Name
 
 Returns the current value of Name. 
 (In the database, Name is stored as varchar(200).)
 
 
 
 
 Returns the current value of Name. 
 (In the database, Name is stored as varchar(200).)
 
 
 
-=head2 SetName VALUE
+=item SetName VALUE
 
 
 Set Name to VALUE. 
 
 
 Set Name to VALUE. 
@@ -222,14 +197,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Password
+=item Password
 
 Returns the current value of Password. 
 (In the database, Password is stored as varchar(40).)
 
 
 
 
 Returns the current value of Password. 
 (In the database, Password is stored as varchar(40).)
 
 
 
-=head2 SetPassword VALUE
+=item SetPassword VALUE
 
 
 Set Password to VALUE. 
 
 
 Set Password to VALUE. 
@@ -240,14 +215,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Comments
+=item Comments
 
 Returns the current value of Comments. 
 (In the database, Comments is stored as blob.)
 
 
 
 
 Returns the current value of Comments. 
 (In the database, Comments is stored as blob.)
 
 
 
-=head2 SetComments VALUE
+=item SetComments VALUE
 
 
 Set Comments to VALUE. 
 
 
 Set Comments to VALUE. 
@@ -258,14 +233,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Signature
+=item Signature
 
 Returns the current value of Signature. 
 (In the database, Signature is stored as blob.)
 
 
 
 
 Returns the current value of Signature. 
 (In the database, Signature is stored as blob.)
 
 
 
-=head2 SetSignature VALUE
+=item SetSignature VALUE
 
 
 Set Signature to VALUE. 
 
 
 Set Signature to VALUE. 
@@ -276,14 +251,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 EmailAddress
+=item EmailAddress
 
 Returns the current value of EmailAddress. 
 (In the database, EmailAddress is stored as varchar(120).)
 
 
 
 
 Returns the current value of EmailAddress. 
 (In the database, EmailAddress is stored as varchar(120).)
 
 
 
-=head2 SetEmailAddress VALUE
+=item SetEmailAddress VALUE
 
 
 Set EmailAddress to VALUE. 
 
 
 Set EmailAddress to VALUE. 
@@ -294,14 +269,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 FreeformContactInfo
+=item FreeformContactInfo
 
 Returns the current value of FreeformContactInfo. 
 (In the database, FreeformContactInfo is stored as blob.)
 
 
 
 
 Returns the current value of FreeformContactInfo. 
 (In the database, FreeformContactInfo is stored as blob.)
 
 
 
-=head2 SetFreeformContactInfo VALUE
+=item SetFreeformContactInfo VALUE
 
 
 Set FreeformContactInfo to VALUE. 
 
 
 Set FreeformContactInfo to VALUE. 
@@ -312,14 +287,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Organization
+=item Organization
 
 Returns the current value of Organization. 
 (In the database, Organization is stored as varchar(200).)
 
 
 
 
 Returns the current value of Organization. 
 (In the database, Organization is stored as varchar(200).)
 
 
 
-=head2 SetOrganization VALUE
+=item SetOrganization VALUE
 
 
 Set Organization to VALUE. 
 
 
 Set Organization to VALUE. 
@@ -330,14 +305,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 RealName
+=item RealName
 
 Returns the current value of RealName. 
 (In the database, RealName is stored as varchar(120).)
 
 
 
 
 Returns the current value of RealName. 
 (In the database, RealName is stored as varchar(120).)
 
 
 
-=head2 SetRealName VALUE
+=item SetRealName VALUE
 
 
 Set RealName to VALUE. 
 
 
 Set RealName to VALUE. 
@@ -348,14 +323,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 NickName
+=item NickName
 
 Returns the current value of NickName. 
 (In the database, NickName is stored as varchar(16).)
 
 
 
 
 Returns the current value of NickName. 
 (In the database, NickName is stored as varchar(16).)
 
 
 
-=head2 SetNickName VALUE
+=item SetNickName VALUE
 
 
 Set NickName to VALUE. 
 
 
 Set NickName to VALUE. 
@@ -366,14 +341,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Lang
+=item Lang
 
 Returns the current value of Lang. 
 (In the database, Lang is stored as varchar(16).)
 
 
 
 
 Returns the current value of Lang. 
 (In the database, Lang is stored as varchar(16).)
 
 
 
-=head2 SetLang VALUE
+=item SetLang VALUE
 
 
 Set Lang to VALUE. 
 
 
 Set Lang to VALUE. 
@@ -384,14 +359,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 EmailEncoding
+=item EmailEncoding
 
 Returns the current value of EmailEncoding. 
 (In the database, EmailEncoding is stored as varchar(16).)
 
 
 
 
 Returns the current value of EmailEncoding. 
 (In the database, EmailEncoding is stored as varchar(16).)
 
 
 
-=head2 SetEmailEncoding VALUE
+=item SetEmailEncoding VALUE
 
 
 Set EmailEncoding to VALUE. 
 
 
 Set EmailEncoding to VALUE. 
@@ -402,14 +377,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 WebEncoding
+=item WebEncoding
 
 Returns the current value of WebEncoding. 
 (In the database, WebEncoding is stored as varchar(16).)
 
 
 
 
 Returns the current value of WebEncoding. 
 (In the database, WebEncoding is stored as varchar(16).)
 
 
 
-=head2 SetWebEncoding VALUE
+=item SetWebEncoding VALUE
 
 
 Set WebEncoding to VALUE. 
 
 
 Set WebEncoding to VALUE. 
@@ -420,14 +395,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 ExternalContactInfoId
+=item ExternalContactInfoId
 
 Returns the current value of ExternalContactInfoId. 
 (In the database, ExternalContactInfoId is stored as varchar(100).)
 
 
 
 
 Returns the current value of ExternalContactInfoId. 
 (In the database, ExternalContactInfoId is stored as varchar(100).)
 
 
 
-=head2 SetExternalContactInfoId VALUE
+=item SetExternalContactInfoId VALUE
 
 
 Set ExternalContactInfoId to VALUE. 
 
 
 Set ExternalContactInfoId to VALUE. 
@@ -438,14 +413,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 ContactInfoSystem
+=item ContactInfoSystem
 
 Returns the current value of ContactInfoSystem. 
 (In the database, ContactInfoSystem is stored as varchar(30).)
 
 
 
 
 Returns the current value of ContactInfoSystem. 
 (In the database, ContactInfoSystem is stored as varchar(30).)
 
 
 
-=head2 SetContactInfoSystem VALUE
+=item SetContactInfoSystem VALUE
 
 
 Set ContactInfoSystem to VALUE. 
 
 
 Set ContactInfoSystem to VALUE. 
@@ -456,14 +431,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 ExternalAuthId
+=item ExternalAuthId
 
 Returns the current value of ExternalAuthId. 
 (In the database, ExternalAuthId is stored as varchar(100).)
 
 
 
 
 Returns the current value of ExternalAuthId. 
 (In the database, ExternalAuthId is stored as varchar(100).)
 
 
 
-=head2 SetExternalAuthId VALUE
+=item SetExternalAuthId VALUE
 
 
 Set ExternalAuthId to VALUE. 
 
 
 Set ExternalAuthId to VALUE. 
@@ -474,14 +449,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 AuthSystem
+=item AuthSystem
 
 Returns the current value of AuthSystem. 
 (In the database, AuthSystem is stored as varchar(30).)
 
 
 
 
 Returns the current value of AuthSystem. 
 (In the database, AuthSystem is stored as varchar(30).)
 
 
 
-=head2 SetAuthSystem VALUE
+=item SetAuthSystem VALUE
 
 
 Set AuthSystem to VALUE. 
 
 
 Set AuthSystem to VALUE. 
@@ -492,14 +467,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Gecos
+=item Gecos
 
 Returns the current value of Gecos. 
 (In the database, Gecos is stored as varchar(16).)
 
 
 
 
 Returns the current value of Gecos. 
 (In the database, Gecos is stored as varchar(16).)
 
 
 
-=head2 SetGecos VALUE
+=item SetGecos VALUE
 
 
 Set Gecos to VALUE. 
 
 
 Set Gecos to VALUE. 
@@ -510,14 +485,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 HomePhone
+=item HomePhone
 
 Returns the current value of HomePhone. 
 (In the database, HomePhone is stored as varchar(30).)
 
 
 
 
 Returns the current value of HomePhone. 
 (In the database, HomePhone is stored as varchar(30).)
 
 
 
-=head2 SetHomePhone VALUE
+=item SetHomePhone VALUE
 
 
 Set HomePhone to VALUE. 
 
 
 Set HomePhone to VALUE. 
@@ -528,14 +503,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 WorkPhone
+=item WorkPhone
 
 Returns the current value of WorkPhone. 
 (In the database, WorkPhone is stored as varchar(30).)
 
 
 
 
 Returns the current value of WorkPhone. 
 (In the database, WorkPhone is stored as varchar(30).)
 
 
 
-=head2 SetWorkPhone VALUE
+=item SetWorkPhone VALUE
 
 
 Set WorkPhone to VALUE. 
 
 
 Set WorkPhone to VALUE. 
@@ -546,14 +521,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 MobilePhone
+=item MobilePhone
 
 Returns the current value of MobilePhone. 
 (In the database, MobilePhone is stored as varchar(30).)
 
 
 
 
 Returns the current value of MobilePhone. 
 (In the database, MobilePhone is stored as varchar(30).)
 
 
 
-=head2 SetMobilePhone VALUE
+=item SetMobilePhone VALUE
 
 
 Set MobilePhone to VALUE. 
 
 
 Set MobilePhone to VALUE. 
@@ -564,14 +539,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 PagerPhone
+=item PagerPhone
 
 Returns the current value of PagerPhone. 
 (In the database, PagerPhone is stored as varchar(30).)
 
 
 
 
 Returns the current value of PagerPhone. 
 (In the database, PagerPhone is stored as varchar(30).)
 
 
 
-=head2 SetPagerPhone VALUE
+=item SetPagerPhone VALUE
 
 
 Set PagerPhone to VALUE. 
 
 
 Set PagerPhone to VALUE. 
@@ -582,14 +557,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Address1
+=item Address1
 
 Returns the current value of Address1. 
 (In the database, Address1 is stored as varchar(200).)
 
 
 
 
 Returns the current value of Address1. 
 (In the database, Address1 is stored as varchar(200).)
 
 
 
-=head2 SetAddress1 VALUE
+=item SetAddress1 VALUE
 
 
 Set Address1 to VALUE. 
 
 
 Set Address1 to VALUE. 
@@ -600,14 +575,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Address2
+=item Address2
 
 Returns the current value of Address2. 
 (In the database, Address2 is stored as varchar(200).)
 
 
 
 
 Returns the current value of Address2. 
 (In the database, Address2 is stored as varchar(200).)
 
 
 
-=head2 SetAddress2 VALUE
+=item SetAddress2 VALUE
 
 
 Set Address2 to VALUE. 
 
 
 Set Address2 to VALUE. 
@@ -618,14 +593,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 City
+=item City
 
 Returns the current value of City. 
 (In the database, City is stored as varchar(100).)
 
 
 
 
 Returns the current value of City. 
 (In the database, City is stored as varchar(100).)
 
 
 
-=head2 SetCity VALUE
+=item SetCity VALUE
 
 
 Set City to VALUE. 
 
 
 Set City to VALUE. 
@@ -636,14 +611,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 State
+=item State
 
 Returns the current value of State. 
 (In the database, State is stored as varchar(100).)
 
 
 
 
 Returns the current value of State. 
 (In the database, State is stored as varchar(100).)
 
 
 
-=head2 SetState VALUE
+=item SetState VALUE
 
 
 Set State to VALUE. 
 
 
 Set State to VALUE. 
@@ -654,14 +629,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Zip
+=item Zip
 
 Returns the current value of Zip. 
 (In the database, Zip is stored as varchar(16).)
 
 
 
 
 Returns the current value of Zip. 
 (In the database, Zip is stored as varchar(16).)
 
 
 
-=head2 SetZip VALUE
+=item SetZip VALUE
 
 
 Set Zip to VALUE. 
 
 
 Set Zip to VALUE. 
@@ -672,14 +647,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Country
+=item Country
 
 Returns the current value of Country. 
 (In the database, Country is stored as varchar(50).)
 
 
 
 
 Returns the current value of Country. 
 (In the database, Country is stored as varchar(50).)
 
 
 
-=head2 SetCountry VALUE
+=item SetCountry VALUE
 
 
 Set Country to VALUE. 
 
 
 Set Country to VALUE. 
@@ -690,14 +665,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Timezone
+=item Timezone
 
 Returns the current value of Timezone. 
 (In the database, Timezone is stored as varchar(50).)
 
 
 
 
 Returns the current value of Timezone. 
 (In the database, Timezone is stored as varchar(50).)
 
 
 
-=head2 SetTimezone VALUE
+=item SetTimezone VALUE
 
 
 Set Timezone to VALUE. 
 
 
 Set Timezone to VALUE. 
@@ -708,14 +683,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 PGPKey
+=item PGPKey
 
 Returns the current value of PGPKey. 
 (In the database, PGPKey is stored as text.)
 
 
 
 
 Returns the current value of PGPKey. 
 (In the database, PGPKey is stored as text.)
 
 
 
-=head2 SetPGPKey VALUE
+=item SetPGPKey VALUE
 
 
 Set PGPKey to VALUE. 
 
 
 Set PGPKey to VALUE. 
@@ -726,7 +701,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
 =cut
 
 
-=head2 Creator
+=item Creator
 
 Returns the current value of Creator. 
 (In the database, Creator is stored as int(11).)
 
 Returns the current value of Creator. 
 (In the database, Creator is stored as int(11).)
@@ -735,7 +710,7 @@ Returns the current value of Creator.
 =cut
 
 
 =cut
 
 
-=head2 Created
+=item Created
 
 Returns the current value of Created. 
 (In the database, Created is stored as datetime.)
 
 Returns the current value of Created. 
 (In the database, Created is stored as datetime.)
@@ -744,7 +719,7 @@ Returns the current value of Created.
 =cut
 
 
 =cut
 
 
-=head2 LastUpdatedBy
+=item LastUpdatedBy
 
 Returns the current value of LastUpdatedBy. 
 (In the database, LastUpdatedBy is stored as int(11).)
 
 Returns the current value of LastUpdatedBy. 
 (In the database, LastUpdatedBy is stored as int(11).)
@@ -753,7 +728,7 @@ Returns the current value of LastUpdatedBy.
 =cut
 
 
 =cut
 
 
-=head2 LastUpdated
+=item LastUpdated
 
 Returns the current value of LastUpdated. 
 (In the database, LastUpdated is stored as datetime.)
 
 Returns the current value of LastUpdated. 
 (In the database, LastUpdated is stored as datetime.)
@@ -763,82 +738,99 @@ Returns the current value of LastUpdated.
 
 
 
 
 
 
-sub _CoreAccessible {
+sub _ClassAccessible {
     {
      
         id =>
     {
      
         id =>
-               {read => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => ''},
+               {read => 1, type => 'int(11)', default => ''},
         Name => 
         Name => 
-               {read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
+               {read => 1, write => 1, type => 'varchar(200)', default => ''},
         Password => 
         Password => 
-               {read => 1, write => 1, sql_type => 12, length => 40,  is_blob => 0,  is_numeric => 0,  type => 'varchar(40)', default => ''},
+               {read => 1, write => 1, type => 'varchar(40)', default => ''},
         Comments => 
         Comments => 
-               {read => 1, write => 1, sql_type => -4, length => 0,  is_blob => 1,  is_numeric => 0,  type => 'blob', default => ''},
+               {read => 1, write => 1, type => 'blob', default => ''},
         Signature => 
         Signature => 
-               {read => 1, write => 1, sql_type => -4, length => 0,  is_blob => 1,  is_numeric => 0,  type => 'blob', default => ''},
+               {read => 1, write => 1, type => 'blob', default => ''},
         EmailAddress => 
         EmailAddress => 
-               {read => 1, write => 1, sql_type => 12, length => 120,  is_blob => 0,  is_numeric => 0,  type => 'varchar(120)', default => ''},
+               {read => 1, write => 1, type => 'varchar(120)', default => ''},
         FreeformContactInfo => 
         FreeformContactInfo => 
-               {read => 1, write => 1, sql_type => -4, length => 0,  is_blob => 1,  is_numeric => 0,  type => 'blob', default => ''},
+               {read => 1, write => 1, type => 'blob', default => ''},
         Organization => 
         Organization => 
-               {read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
+               {read => 1, write => 1, type => 'varchar(200)', default => ''},
         RealName => 
         RealName => 
-               {read => 1, write => 1, sql_type => 12, length => 120,  is_blob => 0,  is_numeric => 0,  type => 'varchar(120)', default => ''},
+               {read => 1, write => 1, type => 'varchar(120)', default => ''},
         NickName => 
         NickName => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         Lang => 
         Lang => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         EmailEncoding => 
         EmailEncoding => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         WebEncoding => 
         WebEncoding => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         ExternalContactInfoId => 
         ExternalContactInfoId => 
-               {read => 1, write => 1, sql_type => 12, length => 100,  is_blob => 0,  is_numeric => 0,  type => 'varchar(100)', default => ''},
+               {read => 1, write => 1, type => 'varchar(100)', default => ''},
         ContactInfoSystem => 
         ContactInfoSystem => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         ExternalAuthId => 
         ExternalAuthId => 
-               {read => 1, write => 1, sql_type => 12, length => 100,  is_blob => 0,  is_numeric => 0,  type => 'varchar(100)', default => ''},
+               {read => 1, write => 1, type => 'varchar(100)', default => ''},
         AuthSystem => 
         AuthSystem => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         Gecos => 
         Gecos => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         HomePhone => 
         HomePhone => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         WorkPhone => 
         WorkPhone => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         MobilePhone => 
         MobilePhone => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         PagerPhone => 
         PagerPhone => 
-               {read => 1, write => 1, sql_type => 12, length => 30,  is_blob => 0,  is_numeric => 0,  type => 'varchar(30)', default => ''},
+               {read => 1, write => 1, type => 'varchar(30)', default => ''},
         Address1 => 
         Address1 => 
-               {read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
+               {read => 1, write => 1, type => 'varchar(200)', default => ''},
         Address2 => 
         Address2 => 
-               {read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
+               {read => 1, write => 1, type => 'varchar(200)', default => ''},
         City => 
         City => 
-               {read => 1, write => 1, sql_type => 12, length => 100,  is_blob => 0,  is_numeric => 0,  type => 'varchar(100)', default => ''},
+               {read => 1, write => 1, type => 'varchar(100)', default => ''},
         State => 
         State => 
-               {read => 1, write => 1, sql_type => 12, length => 100,  is_blob => 0,  is_numeric => 0,  type => 'varchar(100)', default => ''},
+               {read => 1, write => 1, type => 'varchar(100)', default => ''},
         Zip => 
         Zip => 
-               {read => 1, write => 1, sql_type => 12, length => 16,  is_blob => 0,  is_numeric => 0,  type => 'varchar(16)', default => ''},
+               {read => 1, write => 1, type => 'varchar(16)', default => ''},
         Country => 
         Country => 
-               {read => 1, write => 1, sql_type => 12, length => 50,  is_blob => 0,  is_numeric => 0,  type => 'varchar(50)', default => ''},
+               {read => 1, write => 1, type => 'varchar(50)', default => ''},
         Timezone => 
         Timezone => 
-               {read => 1, write => 1, sql_type => 12, length => 50,  is_blob => 0,  is_numeric => 0,  type => 'varchar(50)', default => ''},
+               {read => 1, write => 1, type => 'varchar(50)', default => ''},
         PGPKey => 
         PGPKey => 
-               {read => 1, write => 1, sql_type => -4, length => 0,  is_blob => 1,  is_numeric => 0,  type => 'text', default => ''},
+               {read => 1, write => 1, type => 'text', default => ''},
         Creator => 
         Creator => 
-               {read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+               {read => 1, auto => 1, type => 'int(11)', default => '0'},
         Created => 
         Created => 
-               {read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
+               {read => 1, auto => 1, type => 'datetime', default => ''},
         LastUpdatedBy => 
         LastUpdatedBy => 
-               {read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+               {read => 1, auto => 1, type => 'int(11)', default => '0'},
         LastUpdated => 
         LastUpdated => 
-               {read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
+               {read => 1, auto => 1, type => 'datetime', default => ''},
 
  }
 };
 
 
  }
 };
 
-RT::Base->_ImportOverlays();
+
+        eval "require RT::User_Overlay";
+        if ($@ && $@ !~ qr{^Can't locate RT/User_Overlay.pm}) {
+            die $@;
+        };
+
+        eval "require RT::User_Vendor";
+        if ($@ && $@ !~ qr{^Can't locate RT/User_Vendor.pm}) {
+            die $@;
+        };
+
+        eval "require RT::User_Local";
+        if ($@ && $@ !~ qr{^Can't locate RT/User_Local.pm}) {
+            die $@;
+        };
+
+
+
 
 =head1 SEE ALSO
 
 
 =head1 SEE ALSO
 
@@ -848,7 +840,7 @@ _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customiz
 
 These overlay files can contain new subs or subs to replace existing subs in this module.
 
 
 These overlay files can contain new subs or subs to replace existing subs in this module.
 
-Each of these files should begin with the line 
+If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line 
 
    no warnings qw(redefine);
 
 
    no warnings qw(redefine);