#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
# 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/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
#
# CONTRIBUTION SUBMISSION POLICY:
$MasonSessionDir
);
-$VERSION = '3.6.4';
+$VERSION = '3.6.10';
$CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm";
$SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm";
}
eval { require $CORE_CONFIG_FILE };
if ($@) {
- my ($fileuid,$filegid) = (stat($SITE_CONFIG_FILE))[4,5];
+ my ($fileuid,$filegid) = (stat($CORE_CONFIG_FILE))[4,5];
my $fileusername = getpwuid($fileuid);
my $filegroup = getgrgid($filegid);
- my $errormessage = sprintf($message, $SITE_CONFIG_FILE,
+ my $errormessage = sprintf($message, $CORE_CONFIG_FILE,
$fileusername, $filegroup, $filegroup);
- die ("$errormessage '$CORE_CONFIG_FILE'\n$@")
+ die ("$errormessage\n$@")
}
# RT::Essentials mistakenly recommends that WebPath be set to '/'.
sub Init {
+ my @arg = @_;
+
CheckPerlRequirements();
#Get a database connection
$System = RT::System->new();
InitClasses();
- InitLogging();
+ InitLogging(@arg);
}
sub InitLogging {
+ my %arg = @_;
+
# We have to set the record separator ($, man perlvar)
# or Log::Dispatch starts getting
# really pissy, as some other module we use unsets it.
## Mason). It will log all problems through the standard logging
## mechanism (see above).
+ unless ( $arg{'NoSignalHandlers'} ) {
+
$SIG{__WARN__} = sub {
# The 'wide character' warnings has to be silenced for now, at least
# until HTML::Mason offers a sane way to process both raw output and
die $_[0];
};
+ }
+
# }}}
}
sub InitClasses {
require RT::Tickets;
require RT::Transactions;
+ require RT::Attachments;
require RT::Users;
+ require RT::Principals;
require RT::CurrentUser;
require RT::Templates;
require RT::Queues;
require RT::CustomFieldValues;
require RT::ObjectCustomFields;
require RT::ObjectCustomFieldValues;
+ require RT::Attributes;
+
+ # on a cold server (just after restart) people could have an object
+ # in the session, as we deserialize it so we never call constructor
+ # of the class, so the list of accessible fields is empty and we die
+ # with "Method xxx is not implemented in RT::SomeClass"
+ $_->_BuildTableAttributes foreach qw(
+ RT::Ticket
+ RT::Transaction
+ RT::Attachment
+ RT::User
+ RT::Principal
+ RT::Template
+ RT::Queue
+ RT::ScripAction
+ RT::ScripCondition
+ RT::Scrip
+ RT::Group
+ RT::GroupMember
+ RT::CustomField
+ RT::CustomFieldValue
+ RT::ObjectCustomField
+ RT::ObjectCustomFieldValue
+ RT::Attribute
+ );
}
# }}}
=cut
+eval "require RT_Vendor";
+die $@ if ($@ && $@ !~ qr{^Can't locate RT_Vendor.pm});
eval "require RT_Local";
die $@ if ($@ && $@ !~ qr{^Can't locate RT_Local.pm});