diff options
Diffstat (limited to 'rt/etc/config.pm')
-rwxr-xr-x | rt/etc/config.pm | 473 |
1 files changed, 473 insertions, 0 deletions
diff --git a/rt/etc/config.pm b/rt/etc/config.pm new file mode 100755 index 000000000..52b1a0b25 --- /dev/null +++ b/rt/etc/config.pm @@ -0,0 +1,473 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/etc/Attic/config.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT; + +# {{{ Base Configuration + +# $rtname the string that RT will look for in mail messages to +# figure out what ticket a new piece of mail belongs to + +# Your domain name is recommended, so as not to pollute the namespace. +# once you start using a given tag, you should probably never change it. +# (otherwise, mail for existing tickets won't get put in the right place + +$rtname="example.com"; + +# You should set this to your organization's DNS domain. For example, +# fsck.com or asylum.arkham.ma.us. It's used by the linking interface to +# guarantee that ticket URIs are unique and easy to construct. + +$Organization = "example.com"; + +# $user_passwd_min defines the minimum length for user passwords. Setting +# it to 0 disables this check +$MinimumPasswordLength = "5"; + +# $Timezone is used to convert times entered by users into GMT and back again +# It should be set to a timezone recognized by your local unix box. +$Timezone = 'US/Eastern'; + +# LogDir is where RT writes its logfiles. +# This directory should be writable by your rt group +$LogDir = "!!RT_LOG_PATH!!"; + +# }}} + +# {{{ Database Configuration + +# Database driver beeing used - i.e. MySQL. +$DatabaseType="!!DB_TYPE!!"; + +# The domain name of your database server +# If you're running mysql and it's on localhost, +# leave it blank for enhanced performance +$DatabaseHost="!!DB_HOST!!"; + +# The port that your database server is running on. Ignored unless it's +# a positive integer. It's usually safe to leave this blank +$DatabasePort="!!DB_PORT!!"; + + +#The name of the database user (inside the database) +$DatabaseUser='!!DB_RT_USER!!'; + +# Password the DatabaseUser should use to access the database +$DatabasePassword='!!DB_RT_PASS!!'; + + +# The name of the RT's database on your database server +$DatabaseName='!!DB_DATABASE!!'; + +# If you're using Postgres and have compiled in SSL support, +# set DatabaseRequireSSL to 1 to turn on SSL communication +$DatabaseRequireSSL=undef; + +# }}} + +# {{{ Incoming mail gateway configuration + + +# OwnerEmail is the address of a human who manages RT. RT will send +# errors generated by the mail gateway to this address. This address +# should _not_ be an address that's managed by your RT instance. + +$OwnerEmail = 'root'; + +# If $LoopsToRTOwner is defined, RT will send mail that it believes +# might be a loop to $RT::OwnerEmail + +$LoopsToRTOwner = 1; + +# If $StoreLoopss is defined, RT will record messages that it believes +# to be part of mail loops. +# As it does this, it will try to be careful not to send mail to the +# sender of these messages + +$StoreLoops = undef; + + +# $MaxAttachmentSize sets the maximum size (in bytes) of attachments stored +# in the database. + +# For mysql and oracle, we set this size at 10 megabytes. +# If you're running a postgres version earlier than 7.1, you will need +# to drop this to 8192. (8k) + +$MaxAttachmentSize = 10000000; + +# $TruncateLongAttachments: if this is set to a non-undef value, +# RT will truncate attachments longer than MaxAttachmentLength. + +$TruncateLongAttachments = undef; + + +# $DropLongAttachments: if this is set to a non-undef value, +# RT will silently drop attachments longer than MaxAttachmentLength. + +$DropLongAttachments = undef; + +# If $ParseNewMessageForTicketCcs is true, RT will attempt to divine +# Ticket 'Cc' watchers from the To and Cc lines of incoming messages +# Be forewarned that if you have _any_ addresses which forward mail to +# RT automatically and you enable this option without modifying +# "IsRTAddress" below, you will get yourself into a heap of trouble. +# And well, this is free software, so there isn't a warrantee, but +# I disclaim all ability to help you if you do enable this without +# modifying IsRTAddress below. + +$ParseNewMessageForTicketCcs = undef; + +# IsRTAddress is used to make sure RT doesn't add itself as a ticket CC if +# the setting above is enabled. + +sub IsRTAddress { + my $address = shift; + + # Example: the following rule would tell RT not to Cc + # "tickets@noc.example.com" + # return(1) if ($address =~ /^tickets\@noc.example.com$/i); + + return(undef) +} + +# CanonicalizeAddress converts email addresses into canonical form. +# it takes one email address in and returns the proper canonical +# form. You can dump whatever your proper local config is in here + +sub CanonicalizeAddress { + my $email = shift; + # Example: the following rule would treat all email + # coming from a subdomain as coming from second level domain + # foo.com + #$email =~ s/\@(.*).foo.com/\@foo.com/; + return ($email) +} + +# If $LookupSenderInExternalDatabase is defined, RT will attempt to +# verify the incoming message sender with a known source, using the +# LookupExternalUserInfo routine below + +$LookupSenderInExternalDatabase = undef; + +# If $SenderMustExistInExternalDatabase is true, RT will refuse to +# create non-privileged accounts for unknown users if you are using +# the "LookupSenderInExternalDatabase" option. +# Instead, an error message will be mailed and RT will forward the +# message to $RTOwner. +# +# If you are not using $LookupSenderInExternalDatabase, this option +# has no effect. +# +# If you define an AutoRejectRequest template, RT will use this +# template for the rejection message. + +$SenderMustExistInExternalDatabase = undef; + +# LookupExternalUserInfo is a site-definable method for synchronizing +# incoming users with an external data source. +# +# This routine takes a tuple of EmailAddress and FriendlyName +# EmailAddress is the user's email address, ususally taken from +# an email message's From: header. +# FriendlyName is a freeform string, ususally taken from the "comment" +# portion of an email message's From: header. +# +# It returns (FoundInExternalDatabase, ParamHash); +# +# FoundInExternalDatabase must be set to 1 before return if the user was +# found in the external database. +# +# ParamHash is a Perl parameter hash which can contain at least the following +# fields. These fields are used to populate RT's users database when the user +# is created +# +# EmailAddress is the email address that RT should use for this user. +# Name is the 'Name' attribute RT should use for this user. +# 'Name' is used for things like access control and user lookups. +# RealName is what RT should display as the user's name when displaying +# 'friendly' names + +sub LookupExternalUserInfo { + my ($EmailAddress, $RealName) = @_; + + my $FoundInExternalDatabase = 1; + my %params = {}; + + #Name is the RT username you want to use for this user. + $params{'Name'} = $EmailAddress; + $params{'EmailAddress'} = $EmailAddress; + $params{'RealName'} = $RealName; + + # See RT's contributed code for examples. + # http://www.fsck.com/pub/rt/contrib/ + return ($FoundInExternalDatabase, %params); +} + +# }}} + +# {{{ Outgoing mail configuration + +# RT is designed such that any mail which already has a ticket-id associated +# with it will get to the right place automatically. + +# $CorrespondAddress and $CommentAddress are the default addresses +# that will be listed in From: and Reply-To: headers of correspondence +# and comment mail tracked by RT, unless overridden by a queue-specific +# address. + +$CorrespondAddress='RT::CorrespondAddress.not.set'; + +$CommentAddress='RT::CommentAddress.not.set'; + + +#Sendmail Configuration + +# $MailCommand defines which method RT will use to try to send mail +# We know that 'sendmailpipe' works fairly well. +# If 'sendmailpipe' doesn't work well for you, try 'sendmail' +# +# Note that you should remove the '-t' from $SendmailArguments +# if you use 'sendmail rather than 'sendmailpipe' + +$MailCommand = 'sendmailpipe'; + +# $SendmailArguments defines what flags to pass to $Sendmail +# assuming you picked 'sendmail' or 'sendmailpipe' as the $MailCommand above. +# If you picked 'sendmailpipe', you MUST add a -t flag to $SendmailArguments + +# These options are good for most sendmail wrappers and workalikes +$SendmailArguments="-oi -t"; + +# These arguments are good for sendmail brand sendmail 8 and newer +#$SendmailArguments="-oi -t -ODeliveryMode=b -OErrorMode=m"; + +# If you selected 'sendmailpipe' above, you MUST specify the path +# to your sendmail binary in $SendmailPath. +# !! If you did not # select 'sendmailpipe' above, this has no effect!! +$SendmailPath = "/usr/sbin/sendmail"; + +# RT can optionally set a "Friendly" 'To:' header when sending messages to +# Ccs or AdminCcs (rather than having a blank 'To:' header. + +# This feature DOES NOT WORK WITH SENDMAIL[tm] BRAND SENDMAIL +# If you are using sendmail, rather than postfix, qmail, exim or some other MTA, +# you _must_ disable this option. + +$UseFriendlyToLine = 0; + + +# }}} + +# {{{ Logging + +# Logging. The default is to log anything except debugging +# information to a logfile. Check the Log::Dispatch POD for +# information about how to get things by syslog, mail or anything +# else, get debugging info in the log, etc. + +# It might generally make +# sense to send error and higher by email to some administrator. +# If you do this, be careful that this email isn't sent to this RT instance. + + +# the minimum level error that will be logged to the specific device. +# levels from lowest to highest: +# debug info notice warning error critical alert emergency + + +# Mail loops will generate a critical log message. + +$LogToScreen = 'error'; +$LogToFile = 'error'; +#$LogToFileNamed = "$LogDir/rt.log.".$$.".".$<; #log to rt.log.<pid>.<user> +$LogToFileNamed = "$LogDir/rt.log".$<; #log to rt.log.user; + +# }}} + +# {{{ Web interface configuration + + + +# Define the directory name to be used for images in rt web +# documents. + +# If you're putting the web ui somewhere other than at the root of +# your server +# $WebPath requires a leading / but no trailing / + +$WebPath = ""; + +# This is the Scheme, server and port for constructing urls to webrt +# $WebBaseURL doesn't need a trailing / + +$WebBaseURL = "http://RT::WebBaseURL.not.configured:80"; + +$WebURL = $WebBaseURL . $WebPath . "/"; + + + +# $WebImagesURL points to the base URL where RT can find its images. +# If you're running the FastCGI version of the RT web interface, +# you should make RT's WebRT/html/NoAuth/images directory available on +# a static web server and supply that URL as $WebImagesURL. + +$WebImagesURL = $WebURL."NoAuth/images/"; + +# $RTLogoURL points to the URL of the RT logo displayed in the web UI + +$LogoURL = $WebImagesURL."rt.jpg"; + +# If $WebExternalAuth is defined, RT will defer to the environment's +# REMOTE_USER variable. + +$WebExternalAuth = undef; + +# $MasonComponentRoot is where your rt instance keeps its mason html files +# (this should be autoconfigured during 'make install' or 'make upgrade') + +$MasonComponentRoot = "!!MASON_HTML_PATH!!"; + +# $MasonLocalComponentRoot is where your rt instance keeps its site-local +# mason html files. +# (this should be autoconfigured during 'make install' or 'make upgrade') + +$MasonLocalComponentRoot = "!!MASON_LOCAL_HTML_PATH!!"; + +# $MasonDataDir Where mason keeps its datafiles +# (this should be autoconfigured during 'make install' or 'make upgrade') + +$MasonDataDir = "!!MASON_DATA_PATH!!"; + +# RT needs to put session data (for preserving state between connections +# via the web interface) +$MasonSessionDir = "!!MASON_SESSION_PATH!!"; + + + +#This is from tobias' prototype web search UI. it may stay and it may go. +%WebOptions= + ( + # This is for putting in more user-actions at the Transaction + # bar. I will typically add "Enter bug in Bugzilla" here.: + ExtraTransactionActions => sub { return ""; }, + + # Here you can modify the list view. Be aware that the web + # interface might crash if TicketAttribute is wrongly set. + + QueueListingCols => + [ + { Header => 'Id', + TicketLink => 1, + TicketAttribute => 'Id' + }, + + { Header => 'Subject', + TicketAttribute => 'Subject' + }, + { Header => 'Requestor(s)', + TicketAttribute => 'RequestorsAsString' + }, + { Header => 'Status', + TicketAttribute => 'Status' + }, + + + { Header => 'Queue', + TicketAttribute => 'QueueObj->Name' + }, + + + + { Header => 'Told', + TicketAttribute => 'ToldObj->AgeAsString' + }, + + { Header => 'Age', + TicketAttribute => 'CreatedObj->AgeAsString' + }, + + { Header => 'Last', + TicketAttribute => 'LastUpdatedObj->AgeAsString' + }, + + # TODO: It would be nice with a link here to the Owner and all + # other request owned by this Owner. + { Header => 'Owner', + TicketAttribute => 'OwnerObj->Name' + }, + + + { Header => 'Take', + TicketLink => 1, + Constant => 'Take', + ExtraLinks => '&Action=Take' + }, + + ] + ); + +# }}} + +# {{{ RT Linking Interface + +# $TicketBaseURI is the Base path of the URI for local tickets + +# You shouldn't need to touch this. it's used to link tickets both locally +# and remotely + +$TicketBaseURI = "fsck.com-rt://$Organization/$rtname/ticket/"; + +# A hash table of conversion subs to be used for transforming RT Link +# URIs to URLs in the web interface. If you want to use RT towards +# locally installed databases, this is the right place to configure it. + +%URI2HTTP= + ( + 'http' => sub {return @_;}, + 'https' => sub {return @_;}, + 'ftp' => sub {return @_;}, + 'fsck.com-rt' => sub {warn "stub!";}, + 'mozilla.org-bugzilla' => sub {warn "stub!"}, + 'fsck.com-kb' => sub {warn "stub!"} + ); + + +# A hash table of subs for fetching content from an URI +%ContentFromURI= + ( + 'fsck.com-rt' => sub {warn "stub!";}, + 'mozilla.org-bugzilla' => sub {warn "stub!"}, + 'fsck.com-kb' => sub {warn "stub!"} + ); + +# }}} + +# {{{ No User servicable parts inside + +############################################ +############################################ +############################################ +# +# Don't edit anything below this line unless you really know +# what you're doing +# +# +############################################ +############################################ + +# TODO: get this stuff out of the config file and into RT.pm + +#Set up us the timezone +$ENV{'TZ'} = $Timezone; #TODO: Bogus hack to deal with Date::Manip whining + +# Configure sendmail if we're using Entity->send('sendmail') +if ($MailCommand eq 'sendmail') { + $MailParams = $SendmailArguments; +} + + + +# }}} + + +1; |