[Rt-commit] [svn] r848 - in rt/branches/rt-3.3: . HOWTO bin docs
docs/design_docs etc html html/Admin/Elements
html/Admin/Global html/Admin/Groups html/Admin/Queues
html/Approvals html/Approvals/Elements html/Elements
html/NoAuth/images html/REST/1.0 html/REST/1.0/Forms/queue
html/REST/1.0/Forms/ticket html/REST/1.0/Forms/user
html/REST/1.0/NoAuth html/REST/1.0/search
html/REST/1.0/ticket html/Search/Elements html/SelfService
html/SelfService/Attachment html/SelfService/Elements
html/Ticket html/Ticket/Elements html/Tools html/User
html/User/Elements html/User/Groups lib lib/RT lib/RT/Action
lib/RT/Condition lib/RT/I18N lib/RT/Interface
lib/RT/Interface/Email/Filter lib/RT/Search lib/RT/URI lib/t
lib/t/data lib/t/data/8859-15-message-series lib/t/regression
m4 sbin
jesse at pallas.eruditorum.org
jesse at pallas.eruditorum.org
Thu May 6 20:33:03 EDT 2004
Author: jesse
Date: Thu May 6 20:33:00 2004
New Revision: 848
Modified:
rt/branches/rt-3.3/ (props changed)
rt/branches/rt-3.3/HOWTO/README (props changed)
rt/branches/rt-3.3/HOWTO/change.txt (props changed)
rt/branches/rt-3.3/HOWTO/release.txt (props changed)
rt/branches/rt-3.3/HOWTO/version-control.txt (props changed)
rt/branches/rt-3.3/Makefile.in
rt/branches/rt-3.3/UPGRADING
rt/branches/rt-3.3/aclocal.m4 (props changed)
rt/branches/rt-3.3/bin/mason_handler.fcgi.in
rt/branches/rt-3.3/bin/mason_handler.scgi.in
rt/branches/rt-3.3/bin/mason_handler.svc.in (props changed)
rt/branches/rt-3.3/bin/rt-commit-handler.in (props changed)
rt/branches/rt-3.3/bin/rt.in
rt/branches/rt-3.3/bin/webmux.pl.in
rt/branches/rt-3.3/configure.ac
rt/branches/rt-3.3/docs/Security (props changed)
rt/branches/rt-3.3/docs/design_docs/acls (props changed)
rt/branches/rt-3.3/docs/design_docs/approval_notices (props changed)
rt/branches/rt-3.3/docs/design_docs/approval_template (props changed)
rt/branches/rt-3.3/docs/design_docs/cf_search (props changed)
rt/branches/rt-3.3/docs/design_docs/cli_spec (props changed)
rt/branches/rt-3.3/docs/design_docs/cvs_integration (props changed)
rt/branches/rt-3.3/docs/design_docs/delegation (props changed)
rt/branches/rt-3.3/docs/design_docs/evil_plans (props changed)
rt/branches/rt-3.3/docs/design_docs/groups_notes (props changed)
rt/branches/rt-3.3/docs/design_docs/link-definitions.txt (props changed)
rt/branches/rt-3.3/docs/design_docs/recursive_group_membership_algorithm (props changed)
rt/branches/rt-3.3/docs/design_docs/rql_parser_machine.graphviz (props changed)
rt/branches/rt-3.3/docs/design_docs/string-extraction-guide.txt (props changed)
rt/branches/rt-3.3/docs/design_docs/ticket_templates (props changed)
rt/branches/rt-3.3/docs/design_docs/users (props changed)
rt/branches/rt-3.3/docs/rt3-schema-relationships.dot (props changed)
rt/branches/rt-3.3/etc/RT_Config.pm.in (contents, props changed)
rt/branches/rt-3.3/etc/RT_SiteConfig.pm (props changed)
rt/branches/rt-3.3/etc/acl.Informix (props changed)
rt/branches/rt-3.3/etc/acl.Oracle (props changed)
rt/branches/rt-3.3/etc/constraints.mysql (contents, props changed)
rt/branches/rt-3.3/etc/drop.Informix (props changed)
rt/branches/rt-3.3/etc/drop.Oracle (props changed)
rt/branches/rt-3.3/etc/initialdata (props changed)
rt/branches/rt-3.3/etc/rt.spec (props changed)
rt/branches/rt-3.3/etc/schema.SQLite
rt/branches/rt-3.3/html/Admin/Elements/AddCustomFieldValue (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditCustomField (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditCustomFieldValues (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditCustomFields (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditQueueWatchers (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditScrips (props changed)
rt/branches/rt-3.3/html/Admin/Elements/EditTemplates (props changed)
rt/branches/rt-3.3/html/Admin/Elements/ListGlobalCustomFields (props changed)
rt/branches/rt-3.3/html/Admin/Elements/QueueRightsForUser (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectCustomFieldType (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectGroups (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectModifyGroup (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectNewGroupMembers (contents, props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectRights (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectScripAction (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectScripCondition (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectSingleOrMultiple (props changed)
rt/branches/rt-3.3/html/Admin/Elements/SelectUsers (props changed)
rt/branches/rt-3.3/html/Admin/Global/Scrip.html (props changed)
rt/branches/rt-3.3/html/Admin/Groups/GroupRights.html (props changed)
rt/branches/rt-3.3/html/Admin/Groups/Members.html (props changed)
rt/branches/rt-3.3/html/Admin/Groups/Modify.html (props changed)
rt/branches/rt-3.3/html/Admin/Groups/UserRights.html (props changed)
rt/branches/rt-3.3/html/Admin/Groups/index.html (contents, props changed)
rt/branches/rt-3.3/html/Admin/Queues/CustomField.html (props changed)
rt/branches/rt-3.3/html/Admin/Queues/CustomFields.html (props changed)
rt/branches/rt-3.3/html/Admin/Queues/Scrip.html (props changed)
rt/branches/rt-3.3/html/Approvals/Display.html (props changed)
rt/branches/rt-3.3/html/Approvals/Elements/Approve (props changed)
rt/branches/rt-3.3/html/Approvals/Elements/PendingMyApproval (props changed)
rt/branches/rt-3.3/html/Approvals/Elements/ShowDependency (props changed)
rt/branches/rt-3.3/html/Approvals/Elements/Tabs (props changed)
rt/branches/rt-3.3/html/Approvals/index.html (props changed)
rt/branches/rt-3.3/html/Elements/BevelBoxRaisedEnd (props changed)
rt/branches/rt-3.3/html/Elements/BevelBoxRaisedStart (props changed)
rt/branches/rt-3.3/html/Elements/CreateTicket (props changed)
rt/branches/rt-3.3/html/Elements/GotoTicket (props changed)
rt/branches/rt-3.3/html/Elements/Menu (props changed)
rt/branches/rt-3.3/html/Elements/MyRequests (contents, props changed)
rt/branches/rt-3.3/html/Elements/MyTickets (props changed)
rt/branches/rt-3.3/html/Elements/PageLayout (props changed)
rt/branches/rt-3.3/html/Elements/Quicksearch (props changed)
rt/branches/rt-3.3/html/Elements/Refresh (contents, props changed)
rt/branches/rt-3.3/html/Elements/SelectAttachmentField (props changed)
rt/branches/rt-3.3/html/Elements/SelectCustomFieldOperator (props changed)
rt/branches/rt-3.3/html/Elements/SelectCustomFieldValue (props changed)
rt/branches/rt-3.3/html/Elements/SelectGroups (props changed)
rt/branches/rt-3.3/html/Elements/SelectLinkType (props changed)
rt/branches/rt-3.3/html/Elements/SelectMatch
rt/branches/rt-3.3/html/Elements/SelectNewTicketQueue
rt/branches/rt-3.3/html/Elements/SelectQueue
rt/branches/rt-3.3/html/Elements/SelectResultsPerPage (props changed)
rt/branches/rt-3.3/html/Elements/SelectSortOrder (props changed)
rt/branches/rt-3.3/html/Elements/SelectTicketSortBy (props changed)
rt/branches/rt-3.3/html/Elements/SelectTicketTypes (props changed)
rt/branches/rt-3.3/html/Elements/ViewUser (props changed)
rt/branches/rt-3.3/html/NoAuth/images/back_home.gif (props changed)
rt/branches/rt-3.3/html/NoAuth/images/bplogo.gif (props changed)
rt/branches/rt-3.3/html/NoAuth/images/favicon.png (props changed)
rt/branches/rt-3.3/html/NoAuth/images/head_requestracker.gif (props changed)
rt/branches/rt-3.3/html/NoAuth/images/rt.jpg (props changed)
rt/branches/rt-3.3/html/NoAuth/images/space.gif (props changed)
rt/branches/rt-3.3/html/NoAuth/images/spacer.gif (props changed)
rt/branches/rt-3.3/html/NoAuth/images/squares_blue.gif (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/queue/default (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/queue/ns (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/ticket/attachments (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/ticket/links (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/user/default (props changed)
rt/branches/rt-3.3/html/REST/1.0/Forms/user/ns (props changed)
rt/branches/rt-3.3/html/REST/1.0/NoAuth/mail-gateway (props changed)
rt/branches/rt-3.3/html/REST/1.0/logout (props changed)
rt/branches/rt-3.3/html/REST/1.0/search/dhandler (props changed)
rt/branches/rt-3.3/html/REST/1.0/ticket/comment (props changed)
rt/branches/rt-3.3/html/REST/1.0/ticket/link (props changed)
rt/branches/rt-3.3/html/REST/1.0/ticket/merge (props changed)
rt/branches/rt-3.3/html/Search/Elements/PickCFs
rt/branches/rt-3.3/html/Search/Elements/TicketRow (props changed)
rt/branches/rt-3.3/html/SelfService/Attachment/dhandler (props changed)
rt/branches/rt-3.3/html/SelfService/Closed.html (props changed)
rt/branches/rt-3.3/html/SelfService/Elements/Tabs (props changed)
rt/branches/rt-3.3/html/SelfService/index.html (props changed)
rt/branches/rt-3.3/html/Ticket/Create.html
rt/branches/rt-3.3/html/Ticket/Display.html
rt/branches/rt-3.3/html/Ticket/Elements/BulkLinks (props changed)
rt/branches/rt-3.3/html/Ticket/Elements/EditCustomField (props changed)
rt/branches/rt-3.3/html/Ticket/Elements/EditCustomFields (props changed)
rt/branches/rt-3.3/html/Ticket/Elements/ShowCustomFields (props changed)
rt/branches/rt-3.3/html/Ticket/Elements/ShowHistory
rt/branches/rt-3.3/html/Ticket/Elements/ShowMessageHeaders (contents, props changed)
rt/branches/rt-3.3/html/Ticket/Elements/ShowRequestor (contents, props changed)
rt/branches/rt-3.3/html/Ticket/Elements/ShowTransaction
rt/branches/rt-3.3/html/Ticket/ShowEmailRecord.html
rt/branches/rt-3.3/html/Tools/Offline.html
rt/branches/rt-3.3/html/User/Delegation.html (props changed)
rt/branches/rt-3.3/html/User/Elements/DelegateRights (props changed)
rt/branches/rt-3.3/html/User/Elements/GroupTabs (props changed)
rt/branches/rt-3.3/html/User/Elements/Tabs (props changed)
rt/branches/rt-3.3/html/User/Groups/Members.html (props changed)
rt/branches/rt-3.3/html/User/Groups/Modify.html (props changed)
rt/branches/rt-3.3/html/User/Groups/index.html (props changed)
rt/branches/rt-3.3/html/index.html
rt/branches/rt-3.3/html/l (props changed)
rt/branches/rt-3.3/install-sh (props changed)
rt/branches/rt-3.3/lib/RT.pm.in (contents, props changed)
rt/branches/rt-3.3/lib/RT/ACE_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/ACL_Overlay.pm (contents, props changed)
rt/branches/rt-3.3/lib/RT/Action/CreateTickets.pm
rt/branches/rt-3.3/lib/RT/Action/EscalatePriority.pm (props changed)
rt/branches/rt-3.3/lib/RT/Action/ResolveMembers.pm (props changed)
rt/branches/rt-3.3/lib/RT/Action/SendEmail.pm
rt/branches/rt-3.3/lib/RT/Action/SetPriority.pm (props changed)
rt/branches/rt-3.3/lib/RT/Action/UserDefined.pm (props changed)
rt/branches/rt-3.3/lib/RT/Attachment_Overlay.pm
rt/branches/rt-3.3/lib/RT/Attachments_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/CachedGroupMember.pm (props changed)
rt/branches/rt-3.3/lib/RT/CachedGroupMember_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/CachedGroupMembers.pm (props changed)
rt/branches/rt-3.3/lib/RT/CachedGroupMembers_Overlay.pm (contents, props changed)
rt/branches/rt-3.3/lib/RT/Condition/AnyTransaction.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/BeforeDue.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/Overdue.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/OwnerChange.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/PriorityExceeds.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/QueueChange.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/StatusChange.pm (props changed)
rt/branches/rt-3.3/lib/RT/Condition/UserDefined.pm (props changed)
rt/branches/rt-3.3/lib/RT/CurrentUser.pm
rt/branches/rt-3.3/lib/RT/CustomField.pm (props changed)
rt/branches/rt-3.3/lib/RT/CustomFieldValue.pm (props changed)
rt/branches/rt-3.3/lib/RT/CustomFieldValues.pm (props changed)
rt/branches/rt-3.3/lib/RT/CustomFieldValues_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/CustomFields.pm (props changed)
rt/branches/rt-3.3/lib/RT/CustomFields_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Date.pm (props changed)
rt/branches/rt-3.3/lib/RT/EmailParser.pm
rt/branches/rt-3.3/lib/RT/GroupMember_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/GroupMembers_Overlay.pm (contents, props changed)
rt/branches/rt-3.3/lib/RT/Group_Overlay.pm
rt/branches/rt-3.3/lib/RT/Groups_Overlay.pm (contents, props changed)
rt/branches/rt-3.3/lib/RT/Handle.pm
rt/branches/rt-3.3/lib/RT/I18N/cs.pm (props changed)
rt/branches/rt-3.3/lib/RT/I18N/cs.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/de.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/en.po (props changed)
rt/branches/rt-3.3/lib/RT/I18N/es.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/fr.po
rt/branches/rt-3.3/lib/RT/I18N/he.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/i_default.pm (props changed)
rt/branches/rt-3.3/lib/RT/I18N/it.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/ja.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/nl.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/no.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/pt_br.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/I18N/ru.po (contents, props changed)
rt/branches/rt-3.3/lib/RT/Interface/CLI.pm (props changed)
rt/branches/rt-3.3/lib/RT/Interface/Email.pm
rt/branches/rt-3.3/lib/RT/Interface/Email/Filter/SpamAssassin.pm (props changed)
rt/branches/rt-3.3/lib/RT/Interface/REST.pm (props changed)
rt/branches/rt-3.3/lib/RT/Interface/Web.pm
rt/branches/rt-3.3/lib/RT/Link.pm (props changed)
rt/branches/rt-3.3/lib/RT/Link_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Links.pm (props changed)
rt/branches/rt-3.3/lib/RT/Links_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Principal.pm (props changed)
rt/branches/rt-3.3/lib/RT/Principal_Overlay.pm
rt/branches/rt-3.3/lib/RT/Principals.pm (props changed)
rt/branches/rt-3.3/lib/RT/Principals_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Queue_Overlay.pm
rt/branches/rt-3.3/lib/RT/Queues_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/ScripAction_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/ScripActions_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/ScripCondition_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/ScripConditions_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Scrip_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Search/ActiveTicketsInQueue.pm (props changed)
rt/branches/rt-3.3/lib/RT/Search/Generic.pm (props changed)
rt/branches/rt-3.3/lib/RT/System.pm (props changed)
rt/branches/rt-3.3/lib/RT/Template_Overlay.pm
rt/branches/rt-3.3/lib/RT/Templates_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/TicketCustomFieldValue.pm (props changed)
rt/branches/rt-3.3/lib/RT/TicketCustomFieldValue_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/TicketCustomFieldValues.pm (props changed)
rt/branches/rt-3.3/lib/RT/TicketCustomFieldValues_Overlay.pm (props changed)
rt/branches/rt-3.3/lib/RT/Ticket_Overlay.pm
rt/branches/rt-3.3/lib/RT/Tickets_Overlay.pm
rt/branches/rt-3.3/lib/RT/Tickets_Overlay_SQL.pm
rt/branches/rt-3.3/lib/RT/Transactions_Overlay.pm (contents, props changed)
rt/branches/rt-3.3/lib/RT/URI/base.pm (props changed)
rt/branches/rt-3.3/lib/RT/URI/fsck_com_rt.pm (props changed)
rt/branches/rt-3.3/lib/RT/User_Overlay.pm
rt/branches/rt-3.3/lib/t/00smoke.t.in (props changed)
rt/branches/rt-3.3/lib/t/01harness.t.in (props changed)
rt/branches/rt-3.3/lib/t/02regression.t.in (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/dir (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg1 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg2 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg3 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg4 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg5 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg6 (props changed)
rt/branches/rt-3.3/lib/t/data/8859-15-message-series/msg7 (props changed)
rt/branches/rt-3.3/lib/t/data/multipart-alternative-with-umlaut (props changed)
rt/branches/rt-3.3/lib/t/data/multipart-report (props changed)
rt/branches/rt-3.3/lib/t/data/nested-mime-sample (props changed)
rt/branches/rt-3.3/lib/t/data/nested-rfc-822 (props changed)
rt/branches/rt-3.3/lib/t/data/new-ticket-from-iso-8859-1 (props changed)
rt/branches/rt-3.3/lib/t/data/new-ticket-from-iso-8859-1-full (props changed)
rt/branches/rt-3.3/lib/t/data/russian-subject-no-content-type (props changed)
rt/branches/rt-3.3/lib/t/data/text-html-in-russian (props changed)
rt/branches/rt-3.3/lib/t/data/text-html-with-umlaut (props changed)
rt/branches/rt-3.3/lib/t/regression/00placeholder (props changed)
rt/branches/rt-3.3/lib/t/regression/mime_tests (props changed)
rt/branches/rt-3.3/m4/rt_enable_layout.m4 (props changed)
rt/branches/rt-3.3/m4/rt_expand_var.m4 (props changed)
rt/branches/rt-3.3/m4/rt_layout.m4 (props changed)
rt/branches/rt-3.3/m4/rt_subst_expanded_arg.m4 (props changed)
rt/branches/rt-3.3/sbin/extract-message-catalog (props changed)
rt/branches/rt-3.3/sbin/extract_pod_tests (props changed)
rt/branches/rt-3.3/sbin/factory (props changed)
rt/branches/rt-3.3/sbin/regression_harness (props changed)
rt/branches/rt-3.3/sbin/rt-setup-database.in
rt/branches/rt-3.3/sbin/rt-test-dependencies.in
Log:
r1484 at tinbook: jesse | 2004-05-07T00:31:24.624807Z
Merging forward from 3.1
----------------------------------------------------------------------
Modified: rt/branches/rt-3.3/Makefile.in
==============================================================================
--- rt/branches/rt-3.3/Makefile.in (original)
+++ rt/branches/rt-3.3/Makefile.in Thu May 6 20:33:00 2004
@@ -330,6 +330,8 @@
regression: regression-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db testify-pods fixperms apachectl
$(PERL) lib/t/02regression.t
+regression-noapache: regression-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db testify-pods fixperms start-httpd
+ $(PERL) lib/t/02regression.t
regression-quiet:
$(PERL) sbin/regression_harness
@@ -429,8 +431,10 @@
testify-pods:
[ -d lib/t/autogen ] || mkdir lib/t/autogen
- find lib -name \*pm |grep -v .svn |grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE)
- find bin -type f |grep -v \~ |grep -v .svn | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE)
+ find lib -name \*pm |grep -v .svn | grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE)
+ find bin -type f |grep -v .svn | grep -v \~ | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE)
+ find lib -name \*pm |grep -v .svn | grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE)
+ find bin -type f |grep -v .svn | grep -v \~ | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE)
@@ -490,6 +494,9 @@
rpm -ba etc/rt.spec
+start-httpd:
+ $(PERL) bin/standalone_httpd 80 &
+
apachectl:
$(APACHECTL) stop
sleep 10
Modified: rt/branches/rt-3.3/UPGRADING
==============================================================================
--- rt/branches/rt-3.3/UPGRADING (original)
+++ rt/branches/rt-3.3/UPGRADING Thu May 6 20:33:00 2004
@@ -17,6 +17,3 @@
submission, you MUST grant 'Everyone' the right to create tickets.
Granting this right only to "Unprivileged Users" is now insufficient.
-
-
-
Modified: rt/branches/rt-3.3/bin/mason_handler.fcgi.in
==============================================================================
--- rt/branches/rt-3.3/bin/mason_handler.fcgi.in (original)
+++ rt/branches/rt-3.3/bin/mason_handler.fcgi.in Thu May 6 20:33:00 2004
@@ -33,8 +33,9 @@
require CGI::Fast;
RT::Init();
+RT::DropSetGIDPermissions();
+
-# Response loop
while ( my $cgi = CGI::Fast->new ) {
# the whole point of fastcgi requires the env to get reset here..
# So we must squash it again
Modified: rt/branches/rt-3.3/bin/mason_handler.scgi.in
==============================================================================
--- rt/branches/rt-3.3/bin/mason_handler.scgi.in (original)
+++ rt/branches/rt-3.3/bin/mason_handler.scgi.in Thu May 6 20:33:00 2004
@@ -31,6 +31,7 @@
require CGI;
RT::Init();
+RT::DropSetGIDPermissions();
my $cgi = CGI->new;
if ( ( !$h->interp->comp_exists( $cgi->path_info ) )
Modified: rt/branches/rt-3.3/bin/rt.in
==============================================================================
--- rt/branches/rt-3.3/bin/rt.in (original)
+++ rt/branches/rt-3.3/bin/rt.in Thu May 6 20:33:00 2004
@@ -47,6 +47,8 @@
user => eval{(getpwuid($<))[0]} || $ENV{USER} || $ENV{USERNAME},
passwd => undef,
server => 'http://localhost/rt/',
+ query => undef,
+ orderby => undef,
),
config_from_file($ENV{RTCONFIG} || ".rtrc"),
config_from_env()
@@ -192,6 +194,8 @@
sub list {
my ($q, $type, %data);
+ $orderby = $config{orderby};
+
my $bad = 0;
while (@ARGV) {
@@ -225,7 +229,12 @@
$bad = 1; last;
}
}
-
+
+ if (!defined $q)
+ {
+ $q = $config{query} ;
+ }
+
$type ||= "ticket";
unless ($type && defined $q) {
my $item = $type ? "query string" : "object type";
@@ -539,7 +548,14 @@
my $a = $_ eq "-b" ? \@bcc : \@cc;
@$a = split /\s*,\s*/, shift @ARGV;
}
- elsif (/-m/) { $msg = shift @ARGV }
+ elsif (/-m/) {
+ $msg = shift @ARGV;
+ if ( $msg =~ /^-$/ ) {
+ undef $msg;
+ while (<STDIN>) { $msg .= $_ }
+ }
+ }
+
elsif (/-w/) { $wtime = shift @ARGV }
}
elsif (!$id && m|^(?:ticket/)?($idlist)$|) {
@@ -1087,7 +1103,7 @@
sub config_from_env {
my %env;
- foreach my $k ("DEBUG", "USER", "PASSWD", "SERVER") {
+ foreach my $k ("DEBUG", "USER", "PASSWD", "SERVER", "QUERY", "ORDERBY") {
if (exists $ENV{"RT$k"}) {
$env{lc $k} = $ENV{"RT$k"};
}
@@ -1138,7 +1154,7 @@
chomp;
next if (/^#/ || /^\s*$/);
- if (/^(user|passwd|server)\s+([^ ]+)$/) {
+ if (/^(user|passwd|server|query|orderby)\s+(.*)\s?$/) {
$cfg{$1} = $2;
}
else {
@@ -1369,6 +1385,8 @@
- server <URL> URL to RT server.
- user <username> RT username.
- passwd <passwd> RT user's password.
+ - query <RT Query> Default RT Query for list action
+ - orderby <order> Default RT order for list action
Blank and #-commented lines are ignored.
@@ -1383,6 +1401,8 @@
- RTDEBUG Numeric debug level. (Set to 3 for full logs.)
- RTCONFIG Specifies a name other than ".rtrc" for the
configuration file.
+ - RTQUERY Default RT Query for rt list
+ - RTORDERBY Default order for rt list
--
@@ -1406,7 +1426,7 @@
be used to specify more than one object of the same type. Note that
the list must be a single argument (i.e., no spaces). For example,
"user/root,1-3,5,7-10,ams" is a list of ten users; the same list
- can also be written as "user/ams,root,1,2,3,5,7,8-20".
+ can also be written as "user/ams,root,1,2,3,5,7,8-10".
Examples:
Modified: rt/branches/rt-3.3/bin/webmux.pl.in
==============================================================================
--- rt/branches/rt-3.3/bin/webmux.pl.in (original)
+++ rt/branches/rt-3.3/bin/webmux.pl.in Thu May 6 20:33:00 2004
@@ -46,7 +46,7 @@
#set private_tempfiles
BEGIN {
- if ($mod_perl::VERSION >= 1.9908) {
+ if ($mod_perl::VERSION && ($mod_perl::VERSION >= 1.9908)) {
require Apache::RequestUtil;
no warnings 'redefine';
my $sub = *Apache::request{CODE};
Modified: rt/branches/rt-3.3/configure.ac
==============================================================================
--- rt/branches/rt-3.3/configure.ac (original)
+++ rt/branches/rt-3.3/configure.ac Thu May 6 20:33:00 2004
@@ -6,7 +6,7 @@
dnl Setup autoconf
AC_PREREQ(2.53)
-AC_INIT(RT, [3.1@$Rev: 2039 $], [rt-3.1-bugs at fsck.com])
+AC_INIT(RT, [3.3.HEAD], [rt-3.1-bugs at fsck.com])
AC_CONFIG_SRCDIR([lib/RT.pm.in])
dnl Extract RT version number components
Modified: rt/branches/rt-3.3/etc/RT_Config.pm.in
==============================================================================
--- rt/branches/rt-3.3/etc/RT_Config.pm.in (original)
+++ rt/branches/rt-3.3/etc/RT_Config.pm.in Thu May 6 20:33:00 2004
@@ -251,6 +251,14 @@
Set($LogDir, '@RT_LOG_PATH@');
Set($LogToFileNamed , "rt.log"); #log to rt.log
+# On Solaris, set to ( socket => 'inet' ). Options here override any
+# other options RT passes to Log::Dispatch::Syslog. Other interesting
+# flags include facility and logopt. (See the Log::Dispatch::Syslog
+# documentation for more information.) (Maybe ident too, if you have
+# multiple RT installations.)
+
+ at LogToSyslogConf = () unless (@LogToSyslogConf);
+
# }}}
# {{{ Web interface configuration
@@ -339,12 +347,18 @@
Set($MaxInlineBody, 13456);
-# $MyTicketsLength is the length of the table on the front page.
-# For some people, the default of 10 isn't big enough to get a feel for
-# how much work needs to be done before you get some time off.
+# $MyTicketsLength is the length of the owned tickets table on the
+# front page. For some people, the default of 10 isn't big enough
+# to get a feel for how much work needs to be done before you get
+# some time off.
Set($MyTicketsLength, 10);
+# $MyRequestsLength is the length of the requested tickets table
+# on the front page.
+
+Set($MyRequestsLength, 10);
+
# @MasonParameters is the list of parameters for the constructor of
# HTML::Mason's Apache or CGI Handler. This is normally only useful
# for debugging, eg. profiling individual components with:
Modified: rt/branches/rt-3.3/etc/constraints.mysql
==============================================================================
--- rt/branches/rt-3.3/etc/constraints.mysql (original)
+++ rt/branches/rt-3.3/etc/constraints.mysql Thu May 6 20:33:00 2004
@@ -1,42 +1,85 @@
- ALTER TABLE Links ADD FOREIGN KEY (LocalBase) REFERENCES Tickets(id) ;
+
+ ALTER TABLE Links ADD INDEX(LocalBase);
+ ALTER TABLE Links ADD FOREIGN KEY (LocalBase) REFERENCES Tickets(id);
+ ALTER TABLE Links ADD INDEX(LocalTarget);
ALTER TABLE Links ADD FOREIGN KEY (LocalTarget) REFERENCES Tickets(id);
+ ALTER TABLE Tickets ADD INDEX(Queue);
ALTER TABLE Tickets ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
+ ALTER TABLE Tickets ADD INDEX(EffectiveId);
ALTER TABLE Tickets ADD FOREIGN KEY (EffectiveId) REFERENCES Tickets(id);
+ ALTER TABLE Tickets ADD INDEX(Owner);
ALTER TABLE Tickets ADD FOREIGN KEY (Owner) REFERENCES Principals(id);
+ ALTER TABLE Tickets ADD INDEX(Creator);
+ ALTER TABLE Tickets ADD INDEX(LastUpdatedBy);
ALTER TABLE Tickets ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE Tickets ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE Transactions ADD INDEX(Creator);
+ ALTER TABLE Transactions ADD INDEX (Ticket) ;
+ ALTER TABLE Transactions ADD INDEX (EffectiveTicket) ;
ALTER TABLE Transactions ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE Transactions ADD FOREIGN KEY (Ticket) REFERENCES Tickets(id);
ALTER TABLE Transactions ADD FOREIGN KEY (EffectiveTicket) REFERENCES Tickets(id);
+ ALTER TABLE Attachments ADD INDEX (TransactionId) ;
+ ALTER TABLE Attachments ADD INDEX (Parent) ;
ALTER TABLE Attachments ADD FOREIGN KEY (TransactionId) REFERENCES Transactions(id);
ALTER TABLE Attachments ADD FOREIGN KEY (Parent) REFERENCES Attachments(id);
+ ALTER TABLE Scrips ADD INDEX (ScripCondition) ;
+ ALTER TABLE Scrips ADD INDEX (ScripAction) ;
+ ALTER TABLE Scrips ADD INDEX (Template) ;
+ ALTER TABLE Scrips ADD INDEX (Queue) ;
+ ALTER TABLE Scrips ADD INDEX (Creator) ;
+ ALTER TABLE Scrips ADD INDEX (LastUpdatedBy) ;
ALTER TABLE Scrips ADD FOREIGN KEY (ScripCondition) REFERENCES ScripConditions(id);
ALTER TABLE Scrips ADD FOREIGN KEY (ScripAction) REFERENCES ScripActions(id);
ALTER TABLE Scrips ADD FOREIGN KEY (Template) REFERENCES Templates(id);
ALTER TABLE Scrips ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
ALTER TABLE Scrips ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE Scrips ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE ACL ADD INDEX (PrincipalId) ;
+ ALTER TABLE ACL ADD INDEX (DelegatedBy) ;
+ ALTER TABLE ACL ADD INDEX (DelegatedFrom) ;
ALTER TABLE ACL ADD FOREIGN KEY (PrincipalId) REFERENCES Principals(id);
ALTER TABLE ACL ADD FOREIGN KEY (DelegatedBy) REFERENCES Principals(id);
ALTER TABLE ACL ADD FOREIGN KEY (DelegatedFrom) REFERENCES ACL(id);
+ ALTER TABLE GroupMembers ADD INDEX (MemberId);
+ ALTER TABLE GroupMembers ADD INDEX (GroupId);
ALTER TABLE GroupMembers ADD FOREIGN KEY (GroupId) REFERENCES Groups(id);
ALTER TABLE GroupMembers ADD FOREIGN KEY (MemberId) REFERENCES Principals(id);
+ ALTER TABLE CachedGroupMembers ADD INDEX (ImmediateParentId) ;
+ ALTER TABLE CachedGroupMembers ADD INDEX (GroupId) ;
+ ALTER TABLE CachedGroupMembers ADD INDEX (MemberId) ;
+ ALTER TABLE CachedGroupMembers ADD INDEX (Via) ;
ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (ImmediateParentId) REFERENCES Principals(id);
ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (GroupId) REFERENCES Principals(id);
ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (MemberId) REFERENCES Principals(id);
ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (Via) REFERENCES CachedGroupMembers(id);
+ ALTER TABLE ScripActions ADD INDEX(Creator);
+ ALTER TABLE ScripActions ADD INDEX(LastUpdatedBy);
ALTER TABLE ScripActions ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE ScripActions ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE Templates ADD INDEX(Queue);
+ ALTER TABLE Templates ADD INDEX(Creator);
+ ALTER TABLE Templates ADD INDEX(LastUpdatedBy);
ALTER TABLE Templates ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
ALTER TABLE Templates ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE Templates ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE CustomFields ADD INDEX(Queue);
+ ALTER TABLE CustomFields ADD INDEX(Creator);
+ ALTER TABLE CustomFields ADD INDEX(LastUpdatedBy);
ALTER TABLE CustomFields ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
ALTER TABLE CustomFields ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE CustomFields ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE TicketCustomFieldValues ADD INDEX(Ticket);
+ ALTER TABLE TicketCustomFieldValues ADD INDEX(CustomField);
+ ALTER TABLE TicketCustomFieldValues ADD INDEX(Creator);
+ ALTER TABLE TicketCustomFieldValues ADD INDEX(LastUpdatedBy);
ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (Ticket) REFERENCES Tickets(id);
ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (CustomField) REFERENCES CustomFields(id);
ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
+ ALTER TABLE CustomFieldValues ADD INDEX(CustomField);
+ ALTER TABLE CustomFieldValues ADD INDEX(Creator);
+ ALTER TABLE CustomFieldValues ADD INDEX(LastUpdatedBy);
ALTER TABLE CustomFieldValues ADD FOREIGN KEY (CustomField) REFERENCES CustomFields(id);
ALTER TABLE CustomFieldValues ADD FOREIGN KEY (Creator) REFERENCES Users(id);
ALTER TABLE CustomFieldValues ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
Modified: rt/branches/rt-3.3/etc/schema.SQLite
==============================================================================
--- rt/branches/rt-3.3/etc/schema.SQLite (original)
+++ rt/branches/rt-3.3/etc/schema.SQLite Thu May 6 20:33:00 2004
@@ -408,7 +408,7 @@
LastUpdated DATETIME NULL
) ;
-CREATE INDEX Attributes1 on Attributes(Name)
+CREATE INDEX Attributes1 on Attributes(Name);
CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
--- }}}
Modified: rt/branches/rt-3.3/html/Admin/Elements/SelectNewGroupMembers
==============================================================================
--- rt/branches/rt-3.3/html/Admin/Elements/SelectNewGroupMembers (original)
+++ rt/branches/rt-3.3/html/Admin/Elements/SelectNewGroupMembers Thu May 6 20:33:00 2004
@@ -42,8 +42,18 @@
<%INIT>
my $users = new RT::Users($session{'CurrentUser'});
-$users->Limit(FIELD => 'id', VALUE => $RT::SystemUser->id, OPERATOR => '!=', ENTRYAGGREGATOR => 'AND');
-$users->Limit(FIELD => 'id', VALUE => $RT::Nobody->id, OPERATOR => '!=', ENTRYAGGREGATOR => 'AND' );
+$users->Limit(
+ FIELD => 'id',
+ VALUE => $RT::SystemUser->id,
+ OPERATOR => '!=',
+ ENTRYAGGREGATOR => 'AND'
+);
+$users->Limit(
+ FIELD => 'id',
+ VALUE => $RT::Nobody->id,
+ OPERATOR => '!=',
+ ENTRYAGGREGATOR => 'AND'
+);
$users->LimitToPrivileged();
my $groups = new RT::Groups($session{'CurrentUser'});
Modified: rt/branches/rt-3.3/html/Admin/Groups/index.html
==============================================================================
--- rt/branches/rt-3.3/html/Admin/Groups/index.html (original)
+++ rt/branches/rt-3.3/html/Admin/Groups/index.html Thu May 6 20:33:00 2004
@@ -25,11 +25,7 @@
<& /Admin/Elements/GroupTabs, current_tab => 'Admin/Groups/',
current_subtab => 'Admin/Groups/',
Title => $title &>
-
-
-<%$caption%>:<BR>
-<UL>
-%if ($Groups->Count == 0) {
+<%$caption%>:<BR> <UL> %if ($Groups->Count == 0) {
<LI> <i><&|/l&>No groups matching search criteria found.</&></i>
% }
%my @ids;
@@ -41,6 +37,12 @@
%if (my $ids = join(',', @ids)) {
<em>(<a href="/Download/Tabular/Group/<% $ids %>/Groups.tsv"><&|/l&>Download as a tab-delimited file</&></a>)</em><br>
%}
+<br><br>
+<FORM METHOD=POST ACTION="<% $RT::WebPath %>/Admin/Groups/index.html">
+<input type="checkbox" name="FindDisabledGroups"> <&|/l&>Include disabled groups in listing.</&>
+<BR>
+<div align=right><input type=submit value="<&|/l&>Go!</&>"></div>
+</FORM>
<br><br>
<FORM METHOD=POST ACTION="<% $RT::WebPath %>/Admin/Groups/index.html">
@@ -49,6 +51,11 @@
</FORM>
<%INIT>
my $Groups = RT::Groups->new($session{'CurrentUser'});
+
+if ($FindDisabledGroups) {
+ $Groups->{'find_disabled_rows'} = 1;
+}
+
$Groups->LimitToUserDefinedGroups();
my $title = loc('Select a group');
my $caption;
@@ -78,4 +85,5 @@
$GroupString => undef
$GroupOp => '='
$GroupField => 'Name'
+$FindDisabledGroups => 0
</%ARGS>
Modified: rt/branches/rt-3.3/html/Elements/MyRequests
==============================================================================
--- rt/branches/rt-3.3/html/Elements/MyRequests (original)
+++ rt/branches/rt-3.3/html/Elements/MyRequests Thu May 6 20:33:00 2004
@@ -34,5 +34,5 @@
&>
</&>
<%init>
-my $rows = 10;
+my $rows = $RT::MyRequestsLength;
</%init>
Modified: rt/branches/rt-3.3/html/Elements/Refresh
==============================================================================
--- rt/branches/rt-3.3/html/Elements/Refresh (original)
+++ rt/branches/rt-3.3/html/Elements/Refresh Thu May 6 20:33:00 2004
@@ -29,7 +29,7 @@
><&|/l&>Don't refresh this page.</&></OPTION>
%foreach my $value (@refreshevery) {
<OPTION VALUE="<%$value%>"
-% if ($value == $Default) {
+% if ( $Default && ($value == $Default)) {
SELECTED
% }
><&|/l, $value/60 &>Refresh this page every [_1] minutes.</&></OPTION>
Modified: rt/branches/rt-3.3/html/Elements/SelectMatch
==============================================================================
--- rt/branches/rt-3.3/html/Elements/SelectMatch (original)
+++ rt/branches/rt-3.3/html/Elements/SelectMatch Thu May 6 20:33:00 2004
@@ -37,7 +37,12 @@
$Default => undef
</%ARGS>
<%INIT>
-my ($TrueDefault, $FalseDefault, $LikeDefault, $NotLikeDefault);
+
+my $TrueDefault = '';
+my $FalseDefault='';
+my $LikeDefault='';
+my $NotLikeDefault ='';
+
if ($Default && $Default =~ /false/i) {
$FalseDefault = "SELECTED";
}
Modified: rt/branches/rt-3.3/html/Elements/SelectNewTicketQueue
==============================================================================
--- rt/branches/rt-3.3/html/Elements/SelectNewTicketQueue (original)
+++ rt/branches/rt-3.3/html/Elements/SelectNewTicketQueue Thu May 6 20:33:00 2004
@@ -24,7 +24,10 @@
<LABEL ACCESSKEY="9">
<SELECT NAME ="<%$Name%>">
% foreach my $queue (@{$session{'create_in_queues'}}) {
-<OPTION VALUE="<%$queue->{'id'}%>" <%($Default && ($queue->{'id'} == $Default)) && 'SELECTED'%>><%$queue->{'Name'}%>
+<OPTION
+ VALUE="<%$queue->{'id'}%>"
+ <%$Default && ($queue->{'id'} == $Default) && 'SELECTED'%>>
+<%$queue->{'Name'}%>
% if (($Verbose) and ($queue->{'Description'}) ){
(<%$queue->{'Description'}%>)
% }
Modified: rt/branches/rt-3.3/html/Elements/SelectQueue
==============================================================================
--- rt/branches/rt-3.3/html/Elements/SelectQueue (original)
+++ rt/branches/rt-3.3/html/Elements/SelectQueue Thu May 6 20:33:00 2004
@@ -32,7 +32,7 @@
% }
% while (my $queue=$q->Next) {
% if ($ShowAllQueues || $queue->CurrentUserHasRight('CreateTicket')) {
-<OPTION VALUE="<%($NamedValues ? $queue->Name : $queue->Id) %>" <%( $queue->Id == $Default ? 'SELECTED' : '')%>><%$queue->Name%>
+<OPTION VALUE="<%($NamedValues ? $queue->Name : $queue->Id) %>" <%( $queue->Id eq $Default ? 'SELECTED' : '')%>><%$queue->Name%>
% if (($Verbose) and ($queue->Description) ){
(<%$queue->Description%>)
% }
Modified: rt/branches/rt-3.3/html/Search/Elements/PickCFs
==============================================================================
--- rt/branches/rt-3.3/html/Search/Elements/PickCFs (original)
+++ rt/branches/rt-3.3/html/Search/Elements/PickCFs Thu May 6 20:33:00 2004
@@ -23,16 +23,22 @@
%# END LICENSE BLOCK
<table cellspacing=0 border=0>
% while ( my $CustomField = $CustomFields->Next ) {
-
<tr><td>
+% my $name;
+% if ($CustomField->QueueObj->Name) {
+% $name = "CF." . $CustomField->QueueObj->Name .
+% ".{" . $CustomField->Name . "}";
+% } else {
+% $name = "CF." . $CustomField->Name;
+% }
<% $CustomField->Name %>
- <& /Elements/SelectCustomFieldOperator, Name => "CustomFieldOp". $CustomField->id,
+ <& /Elements/SelectCustomFieldOperator, Name => $name . "Op",
True => loc("is"),
False => loc("isn't"),
TrueVal=> '=', FalseVal => '!=' &>
-<& /Elements/SelectCustomFieldValue, Name => "CustomField".$CustomField->id,
+<& /Elements/SelectCustomFieldValue, Name => "ValueOf" . $name,
CustomField => $CustomField,
&>
</td></tr>
Modified: rt/branches/rt-3.3/html/Ticket/Create.html
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Create.html (original)
+++ rt/branches/rt-3.3/html/Ticket/Create.html Thu May 6 20:33:00 2004
@@ -27,6 +27,7 @@
Title => loc("Create a new ticket") &>
<FORM ACTION="<%$RT::WebPath%>/Ticket/Create.html" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN Name="id" VALUE="new">
+<INPUT TYPE=HIDDEN Name="Debug" VALUE="2">
<A NAME="top">
@@ -183,7 +184,7 @@
title_class=> 'inverse',
titleright => '', color=> "#336633" &>
-<i><&|/l&>(Enter ticket ids or URLs, seperated with spaces)</&></i>
+<i><&|/l&>(Enter ticket ids or URLs, separated with spaces)</&></i>
<TABLE BORDER=0>
<TR><TD ALIGN=RIGHT><&|/l&>Depends on</&></TD><TD><input size=10 name="new-DependsOn" value="<% $ARGS{'new-DependsOn'} %>"></TD></TR>
<TR><TD ALIGN=RIGHT><&|/l&>Depended on by</&></TD><TD><input size=10 name="DependsOn-new" value="<% $ARGS{'DependsOn-new'} %>"></TD></TR>
@@ -262,7 +263,7 @@
if ((!exists $ARGS{'AddMoreAttach'}) && ($ARGS{'id'} eq 'new')) { # new ticket?
$m->comp('Display.html', %ARGS);
- $m->abort();
+ return();
}
</%INIT>
Modified: rt/branches/rt-3.3/html/Ticket/Display.html
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Display.html (original)
+++ rt/branches/rt-3.3/html/Ticket/Display.html Thu May 6 20:33:00 2004
@@ -119,6 +119,8 @@
push (@Actions, @BasicActions, @results);
}
+
+
$m->comp('/Elements/Callback', _CallbackName => 'BeforeDisplay',
TicketObj => \$TicketObj, Tickets => \$Tickets, ARGSRef => \%ARGS);
Modified: rt/branches/rt-3.3/html/Ticket/Elements/ShowHistory
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Elements/ShowHistory (original)
+++ rt/branches/rt-3.3/html/Ticket/Elements/ShowHistory Thu May 6 20:33:00 2004
@@ -118,16 +118,14 @@
$Attachments ||= $m->comp('/Ticket/Elements/FindAttachments', Ticket => $Ticket, Tickets => $Tickets || undef);
$AttachmentContent ||= $m->comp('/Ticket/Elements/LoadTextAttachments', Ticket => $Ticket);
-
-
</%INIT>
<%ARGS>
$URIFile => 'Display.html'
$Ticket => undef
$Tickets => undef
$Attachments => undef
-$ShowHeaders => 0
$AttachmentContent => undef
+$ShowHeaders => undef
$Collapsed => undef
$ShowTitle => 1
$ShowDisplayModes => 1
Modified: rt/branches/rt-3.3/html/Ticket/Elements/ShowMessageHeaders
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Elements/ShowMessageHeaders (original)
+++ rt/branches/rt-3.3/html/Ticket/Elements/ShowMessageHeaders Thu May 6 20:33:00 2004
@@ -27,14 +27,13 @@
% next unless ($display_headers{'_all'} || $display_headers{lc($header->{'Tag'})});
<tr>
<td align="right" class="message-header-key"><pre><%$header->{'Tag'}%>:</pre></td>
-<td class="message-header-value"><%$header->{'Value'}|n%></td>
+<td class="message-header-value"><%$header->{'Value'}%></td>
</td>
</tr>
% }
</table>
<%INIT>
my $content = $Headers;
-RT::Interface::Web::EscapeUTF8(\$content);
$m->comp('/Elements/Callback', content => \$content, %ARGS);
Modified: rt/branches/rt-3.3/html/Ticket/Elements/ShowRequestor
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Elements/ShowRequestor (original)
+++ rt/branches/rt-3.3/html/Ticket/Elements/ShowRequestor Thu May 6 20:33:00 2004
@@ -23,9 +23,8 @@
%# END LICENSE BLOCK
<%PERL>
my $rows = 10;
-my $people = $Ticket->Requestors->MembersObj;
-while (my $member=$people->Next) {
-my $requestor = $member->MemberObj->Object;
+my $people = $Ticket->Requestors->UserMembersObj;
+while (my $requestor=$people->Next) {
my $name=$requestor->RealName || $requestor->EmailAddress;
my $tickets = RT::Tickets->new($session{'CurrentUser'});
$tickets->LimitWatcher(TYPE => 'Requestor', VALUE => $requestor->EmailAddress );
Modified: rt/branches/rt-3.3/html/Ticket/Elements/ShowTransaction
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/Elements/ShowTransaction (original)
+++ rt/branches/rt-3.3/html/Ticket/Elements/ShowTransaction Thu May 6 20:33:00 2004
@@ -97,6 +97,8 @@
if ( $Transaction->TimeTaken != 0 ) {
$TimeTaken = $Transaction->TimeTaken . " min";
+} else {
+ $TimeTaken = '';
}
unless ($Attachments) {
Modified: rt/branches/rt-3.3/html/Ticket/ShowEmailRecord.html
==============================================================================
--- rt/branches/rt-3.3/html/Ticket/ShowEmailRecord.html (original)
+++ rt/branches/rt-3.3/html/Ticket/ShowEmailRecord.html Thu May 6 20:33:00 2004
@@ -1,6 +1,3 @@
-<%attr>
-AutoFlush => 0
-</%attr>
<%args>
$Attachment => undef
$Transaction => undef
@@ -16,11 +13,14 @@
unless ($AttachmentObj->TransactionId() == $Transaction ) {
Abort(loc("Attachment '[_1]' could not be loaded", $Attachment));
}
-$r->content_type('text/plain');
+
</%init>
+<& /Elements/Header, ShowBar => 0 &>
<pre>
<%$AttachmentObj->Headers%>
<%$AttachmentObj->Content%>
</pre>
-%$m->abort();
+</body>
+</html>
+%$m->abort;
Modified: rt/branches/rt-3.3/html/Tools/Offline.html
==============================================================================
--- rt/branches/rt-3.3/html/Tools/Offline.html (original)
+++ rt/branches/rt-3.3/html/Tools/Offline.html Thu May 6 20:33:00 2004
@@ -28,11 +28,37 @@
<& /Elements/ListActions, actions => \@results &>
-<FORM>
-<textarea name=string cols=90 rows=30>
+<FORM ACTION="Offline.html" NAME="TicketUpdate"
+ METHOD=POST enctype="multipart/form-data">
+<table>
+<tr>
+<td>
+<&|/l&>Default Queue</&>:
+</td>
+<td>
+<& /Elements/SelectQueue, Name => "qname", NamedValues => 1 &>
+<i><&|/l&>If no queue is specified, create tickets in this queue.</&></i>
+</td>
+</tr>
+<tr><td class=labeltop>
+<&|/l&>Template</&>:
+</td>
+<td colspan=2>
+<textarea name=string cols=80 rows=30>
<%$string%>
</textarea>
-<& /Elements/Submit, Label => loc('Upload'), Caption => loc("Upload your changes"), color => "#993333" &>
+</td>
+</tr>
+<tr><td class=label>
+<&|/l&>Get template from file</&>:
+</td>
+<td>
+<input name="Template" type="file" value="foo">
+<INPUT TYPE=SUBMIT NAME="Parse" VALUE="<&|/l&>Go</&>">
+</td>
+</tr>
+</table>
+<& /Elements/Submit, Name => 'UpdateTickets', Label => loc('Upload'), Caption => loc("Upload your changes"), color => "#993333" &>
</FORM>
@@ -43,7 +69,26 @@
my $action = new RT::Action::CreateTickets;
my $string;
-if ($ARGS{'string'}) {
+if ($ARGS{'Parse'} && $ARGS{'Template'}) {
+ $ARGS{'string'} = "";
+ my $cgi_object = $m->cgi_object;
+ my $fh = $cgi_object->upload('Template');
+ my $filename = "$fh";
+
+ my ($buffer, $template);
+ while ( my $bytesread = read( $fh, $buffer, 4096 ) ) {
+ $template .= $buffer;
+ }
+ $action->Parse($template, $ARGS{'qname'});
+ foreach (@{ $action->{'create_tickets'} }) {
+ my $id = $_;
+ $id =~ s/^create\-//;
+ $string .= "===Create-Ticket: $id\n";
+ $string .= $action->{'templates'}->{$_} . "\n";
+ }
+
+ $ARGS{'string'} = $string;
+} elsif ($ARGS{'UpdateTickets'}) {
$action->Parse($ARGS{string});
push @results, $action->CreateByTemplate();
push @results, $action->UpdateByTemplate();
Modified: rt/branches/rt-3.3/html/index.html
==============================================================================
--- rt/branches/rt-3.3/html/index.html (original)
+++ rt/branches/rt-3.3/html/index.html Thu May 6 20:33:00 2004
@@ -1,3 +1,29 @@
+<!--
+% $m->out('--'.'>');
+% if (0) {
+%# -->
+<html><head>
+<META HTTP-EQUIV=Refresh CONTENT="3; URL=http://bestpractical.com/rt/rt-broken-install.html">
+<title>Almost there!</title></head>
+<body>
+
+<img src="http://www.bestpractical.com/images/unconfigured-rtlogo.jpg">
+<br><br>
+<h1>You're almost there!</h1>
+You haven't yet configured your webserver to run RT.
+
+You appear to have installed RT's web interface correctly, but haven't yet configured your web
+server to "run" the RT server which powers the web interface.
+
+The next step is to edit your webserver's configuration file to instruct it to use
+RT's <b>mod_perl</b>, <b>fastcgi</b> or <b>speedycgi</b> handler.
+
+If you need commercial support, please contact us at sales at bestpractical.com.
+
+
+<!--
+% }
+
%# BEGIN LICENSE BLOCK
%#
%# Copyright (c) 1996-2003 Jesse Vincent <jesse at bestpractical.com>
@@ -64,7 +90,7 @@
my $query = $ARGS{'q'};
if ( $query =~ m/^\s*(\d+)\s*$/ ) {
- $m->comp("/Ticket/Display.html", id=> $1);
+ $m->comp("/Ticket/Display.html" , id=> $1);
return();
}
@@ -104,3 +130,5 @@
}
</%init>
+
+%# --></body></html>
Modified: rt/branches/rt-3.3/lib/RT.pm.in
==============================================================================
--- rt/branches/rt-3.3/lib/RT.pm.in (original)
+++ rt/branches/rt-3.3/lib/RT.pm.in Thu May 6 20:33:00 2004
@@ -232,7 +232,8 @@
return "$p{message} ($filename:$line)\n"}
},
- stderr => 1
+ stderr => 1,
+ @RT::LogToSyslogConf
));
}
Modified: rt/branches/rt-3.3/lib/RT/ACL_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/ACL_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/ACL_Overlay.pm Thu May 6 20:33:00 2004
@@ -119,11 +119,11 @@
# lead me to start to suspect that we really want users and groups
# to just be the same table. or _maybe_ that we want an object db.
my $princ = RT::Principal->new($RT::SystemUser);
- $princ->Load($args{'PrincipalId'});
+ $princ->Load($args{'Id'});
if ($princ->PrincipalType eq 'User') {
my $group = RT::Group->new($RT::SystemUser);
$group->LoadACLEquivalenceGroup($princ);
- $args{'PrincipalId'} = $group->PrincipalId;
+ $args{'Id'} = $group->PrincipalId;
}
$self->Limit( FIELD => 'PrincipalId',
OPERATOR => '=',
Modified: rt/branches/rt-3.3/lib/RT/Action/CreateTickets.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Action/CreateTickets.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Action/CreateTickets.pm Thu May 6 20:33:00 2004
@@ -223,9 +223,9 @@
'===Create-Ticket: approval
Queue: Approvals
Type: Approval
-AdminCc: root at localhost
+AdminCc: {join ("\nAdminCc: ", at admins) }
Depended-On-By: TOP
-Refers-To: TOP
+Refers-To: TOP
Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject}
Due: {time + 86400}
Content-Type: text/plain
@@ -271,6 +271,82 @@
Queue => $q->Id);
+use RT::Action::CreateTickets;
+my $action = new RT::Action::CreateTickets;
+
+# comma-delimited templates
+my $commas = <<"EOF";
+id,Queue,Subject,Owner,Content
+ticket1,General,"foo, bar",root,blah
+ticket2,General,foo bar,root,blah
+ticket3,General,foo' bar,root,blah'boo
+EOF
+
+# tab-delimited templates
+my $tabs = <<"EOF";
+id\tQueue\tSubject\tOwner\tContent
+ticket10\tGeneral\t"foo' bar"\troot\tblah'
+ticket11\tGeneral\tfoo, bar\troot\tblah
+ticket12\tGeneral\tfoo' bar\troot\tblah'boo
+EOF
+
+my %expected;
+
+$expected{ticket1} = <<EOF;
+Queue: General
+Subject: foo, bar
+Owner: root
+Content: blah
+EOF
+
+$expected{ticket2} = <<EOF;
+Queue: General
+Subject: foo bar
+Owner: root
+Content: blah
+EOF
+
+$expected{ticket3} = <<EOF;
+Queue: General
+Subject: foo' bar
+Owner: root
+Content: blah'boo
+EOF
+
+$expected{ticket10} = <<EOF;
+Queue: General
+Subject: foo' bar
+Owner: root
+Content: blah'
+EOF
+
+$expected{ticket11} = <<EOF;
+Queue: General
+Subject: foo, bar
+Owner: root
+Content: blah
+EOF
+
+$expected{ticket12} = <<EOF;
+Queue: General
+Subject: foo' bar
+Owner: root
+Content: blah'boo
+EOF
+
+$action->Parse($commas);
+$action->Parse($tabs);
+
+my %got;
+foreach (@{ $action->{'create_tickets'} }) {
+ $got{$_} = $action->{'templates'}->{$_};
+}
+
+foreach my $id ( keys %expected ) {
+ ok(exists($got{"create-$id"}), "template exists for $id");
+ is($got{"create-$id"}, $expected{$id}, "template is correct for $id");
+}
+
=end testing
@@ -354,6 +430,8 @@
my $self = shift;
my $top = shift;
+ $RT::Logger->debug("In CreateByTemplate");
+
my @results;
# XXX: cargo cult programming that works. i'll be back.
@@ -516,29 +594,103 @@
sub Parse {
my $self = shift;
my $content = shift;
+ my $qname = shift;
my @template_order;
my $template_id;
- foreach my $line (split(/\n/, $content)) {
- $line =~ s/\r$//;
- $RT::Logger->debug("Line: $line");
- if ($line =~ /^===Create-Ticket: (.*)$/) {
- $template_id = "create-$1";
- $RT::Logger->debug("**** Create ticket: $template_id");
- push @{$self->{'create_tickets'}},$template_id;
- } elsif ($line =~ /^===Update-Ticket: (.*)$/) {
- $template_id = "update-$1";
- $RT::Logger->debug("**** Update ticket: $template_id");
- push @{$self->{'update_tickets'}},$template_id;
- } elsif ($line =~ /^===Base-Ticket: (.*)$/) {
- $template_id = "base-$1";
- $RT::Logger->debug("**** Base ticket: $template_id");
- push @{$self->{'base_tickets'}},$template_id;
- } elsif ($line =~ /^===#.*$/) { # a comment
- next;
- } else {
- $self->{'templates'}->{$template_id} .= $line."\n";
- }
+ if (substr($content, 0, 3) eq '===') {
+ $RT::Logger->debug("Line: ===");
+ foreach my $line (split(/\n/, $content)) {
+ $line =~ s/\r$//;
+ $RT::Logger->debug("Line: $line");
+ if ($line =~ /^===Create-Ticket: (.*)$/) {
+ $template_id = "create-$1";
+ $RT::Logger->debug("**** Create ticket: $template_id");
+ push @{$self->{'create_tickets'}},$template_id;
+ } elsif ($line =~ /^===Update-Ticket: (.*)$/) {
+ $template_id = "update-$1";
+ $RT::Logger->debug("**** Update ticket: $template_id");
+ push @{$self->{'update_tickets'}},$template_id;
+ } elsif ($line =~ /^===Base-Ticket: (.*)$/) {
+ $template_id = "base-$1";
+ $RT::Logger->debug("**** Base ticket: $template_id");
+ push @{$self->{'base_tickets'}},$template_id;
+ } elsif ($line =~ /^===#.*$/) { # a comment
+ next;
+ } else {
+ $self->{'templates'}->{$template_id} .= $line."\n";
+ }
+ }
+ } elsif (substr($content, 0, 2) =~ /^id$/i) {
+ $RT::Logger->debug("Line: id");
+ use Regexp::Common qw(delimited);
+ my $first = substr($content, 0, index($content, "\n"));
+ $first =~ s/\r$//;
+
+ my $delimiter;
+ if ($first =~ /\t/) {
+ $delimiter = "\t";
+ } else {
+ $delimiter = ',';
+ }
+ my $delimited = qr[[^$delimiter]+];
+ my @fields = split(/$delimiter/, $first);
+
+ my $justquoted = qr[$RE{quoted}];
+
+ $content = substr($content, index($content, "\n") + 1);
+ $RT::Logger->debug("First: $first");
+
+ my $queue;
+ foreach my $line (split(/\n/, $content)) {
+ next unless $line;
+ $RT::Logger->debug("Line: $line");
+ # first item is $template_id
+ my $i = 0;
+ my $template_id;
+ while ($line =~ /($justquoted|$delimited)/igx) {
+ if ($i == 0) {
+ $queue = 0;
+ $template_id = 'create-' . $1;
+ $RT::Logger->debug("template_id: $1");
+ push @{$self->{'create_tickets'}},$template_id;
+ } else {
+ my $value = $1;
+ if ($value =~ /$justquoted/) {
+ $value =~ s/^\"|\'//;
+ $value =~ s/\"|\'$//;
+ }
+ my $field = $fields[$i];
+ next unless $field;
+ $field =~ s/^\s//;
+ $field =~ s/\s$//;
+ if ( $field =~ /Body/i || $field =~ /Data/i ||
+ $field =~ /Message/i) {
+ $field = 'Content';
+ }
+ if ( $field =~ /Summary/i) {
+ $field = 'Subject';
+ }
+ if ( $field =~ /Queue/i) {
+ $queue = 1;
+ $RT::Logger->debug("queue!!: |$field|\n");
+ if (!$value) {
+ $value = $qname;
+ }
+ }
+ $RT::Logger->debug("field: |$field|\n");
+ $self->{'templates'}->{$template_id} .= $field . ": ";
+ $self->{'templates'}->{$template_id} .= $value || "";
+ $self->{'templates'}->{$template_id} .= "\n";
+ $self->{'templates'}->{$template_id} .= "ENDOFCONTENT\n" if $field =~ /content/i;
+ $RT::Logger->debug($field . ": $1");
+ }
+ $i++;
+ }
+ if (!$queue) {
+ $self->{'templates'}->{$template_id} .= "Queue: $qname\n";
+ }
+ }
}
}
@@ -674,8 +826,8 @@
DependedOnBy => $args->{'dependedonby'},
RefersTo => $args->{'refersto'},
ReferredToBy => $args->{'referredtoby'},
- Members => $args->{'members'},
- MemberOf => $args->{'memberof'},
+ Children => $args->{'children'},
+ Parents => $args->{'parents'},
}
);
@@ -721,14 +873,15 @@
$string .= "$type: ";
my $mode = $LINKTYPEMAP{$type}->{Mode};
+ my $method = $LINKTYPEMAP{$type}->{Type};
my $links;
- while (my $link = $t->$type->Next) {
+ while (my $link = $t->$method->Next) {
$links .= ", " if $links;
- my $method = $mode . "Obj";
- my $member = $link->$method;
- $links .= $member->Id;
+ my $object = $mode . "Obj";
+ my $member = $link->$object;
+ $links .= $member->Id if $member;
}
$string .= $links;
$string .= "\n";
Modified: rt/branches/rt-3.3/lib/RT/Action/SendEmail.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Action/SendEmail.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Action/SendEmail.pm Thu May 6 20:33:00 2004
@@ -194,7 +194,7 @@
=head2 SendMessage MIMEObj
sends the message using RT's preferred API.
-TODO: Break this out to a seperate module
+TODO: Break this out to a separate module
=cut
@@ -661,15 +661,41 @@
sub MIMEEncodeString {
my $self = shift;
my $value = shift;
- my $enc = shift;
+ # using RFC2047 notation, sec 2.
+ # encoded-word = "=?" charset "?" encoding "?" encoded-text "?="
+ my $charset = shift;
+ my $encoding = 'B';
+ # An 'encoded-word' may not be more than 75 characters long
+ #
+ # MIME encoding increases 4/3*(number of bytes), and always in multiples
+ # of 4. Thus we have to find the best available value of bytes available
+ # for each chunk.
+ #
+ # First we get the integer max which max*4/3 would fit on space.
+ # Then we find the greater multiple of 3 lower or equal than $max.
+ my $max = int(((75-length('=?'.$charset.'?'.$encoding.'?'.'?='))*3)/4);
+ $max = int($max/3)*3;
chomp $value;
return ($value) unless $value =~ /[^\x20-\x7e]/;
$value =~ s/\s*$//;
Encode::_utf8_off($value);
- my $res = Encode::from_to( $value, "utf-8", $enc );
- $value = encode_mimeword( $value, 'B', $enc );
+ my $res = Encode::from_to( $value, "utf-8", $charset );
+
+ if ($max > 0) {
+ # copy value and split in chuncks
+ my $str=$value;
+ my @chunks = unpack("a$max" x int(length($str)/$max
+ + ((length($str) % $max) ? 1:0)), $str);
+ # encode an join chuncks
+ $value = join " ",
+ map encode_mimeword( $_, $encoding, $charset ), @chunks ;
+ return($value);
+ } else {
+ # gives an error...
+ $RT::Logger->crit("Can't encode! Charset or encoding too big.\n");
+ }
}
# }}}
Modified: rt/branches/rt-3.3/lib/RT/Attachment_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Attachment_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Attachment_Overlay.pm Thu May 6 20:33:00 2004
@@ -384,7 +384,7 @@
Returns this object's headers as a string. This method specifically
removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc.
We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send
-out mail. (The mailing rules are seperated from the ticket update code by
+out mail. (The mailing rules are separated from the ticket update code by
an abstraction barrier that makes it impossible to pass this data directly
=cut
@@ -392,8 +392,8 @@
sub Headers {
my $self = shift;
my $hdrs="";
- for (split(/\n/,$self->SUPER::Headers)) {
- $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i
+ for ($self->_SplitHeaders) {
+ $hdrs.="$_\n" unless /^(RT-Send-Bcc):/i
}
return $hdrs;
}
@@ -413,8 +413,8 @@
sub GetHeader {
my $self = shift;
my $tag = shift;
- foreach my $line (split(/\n/,$self->SUPER::Headers)) {
- if ($line =~ /^\Q$tag\E:\s+(.*)$/i) { #if we find the header, return its value
+ foreach my $line ($self->_SplitHeaders) {
+ if ($line =~ /^\Q$tag\E:\s+(.*)$/si) { #if we find the header, return its value
return ($1);
}
}
@@ -437,7 +437,7 @@
my $tag = shift;
my $newheader = '';
- foreach my $line (split(/\n/,$self->SUPER::Headers)) {
+ foreach my $line ($self->_SplitHeaders) {
if (defined $tag and $line =~ /^\Q$tag\E:\s+(.*)$/i) {
$newheader .= "$tag: $_[0]\n";
undef $tag;
@@ -491,6 +491,54 @@
# }}}
+=head2 _SplitHeaders
+
+Returns an array of this attachment object's headers, with one header
+per array entry. multiple lines are folded
+
+=begin testing
+
+my $test1 = "From: jesse";
+my @headers = RT::Attachment->_SplitHeaders($test1);
+is ($#headers, 0, $test1 );
+
+my $test2 = qq{From: jesse
+To: bobby
+Subject: foo
+};
+
+ at headers = RT::Attachment->_SplitHeaders($test2);
+is ($#headers, 2, "testing a bunch of singline multiple headers" );
+
+
+my $test3 = qq{From: jesse
+To: bobby,
+ Suzie,
+ Sally,
+ Joey: bizzy,
+Subject: foo
+};
+
+ at headers = RT::Attachment->_SplitHeaders($test3);
+is ($#headers, 2, "testing a bunch of singline multiple headers" );
+
+
+=end testing
+
+=cut
+
+sub _SplitHeaders {
+ my $self = shift;
+ my $headers = (shift || $self->SUPER::Headers());
+ my @headers;
+ for (split(/\n(?=\w|\z)/,$headers)) {
+ push @headers, $_;
+
+ }
+ return(@headers);
+}
+
+
sub ContentLength {
my $self = shift;
Modified: rt/branches/rt-3.3/lib/RT/CachedGroupMembers_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/CachedGroupMembers_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/CachedGroupMembers_Overlay.pm Thu May 6 20:33:00 2004
@@ -51,7 +51,7 @@
=head2 LimitToUsers
Limits this search object to users who are members of this group
-This is really useful when you want to haave your UI seperate out
+This is really useful when you want to have your UI separate out
groups from users for display purposes
=cut
@@ -78,7 +78,7 @@
=head2 LimitToGroups
Limits this search object to Groups who are members of this group
-This is really useful when you want to haave your UI seperate out
+This is really useful when you want to have your UI separate out
groups from users for display purposes
=cut
Modified: rt/branches/rt-3.3/lib/RT/CurrentUser.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/CurrentUser.pm (original)
+++ rt/branches/rt-3.3/lib/RT/CurrentUser.pm Thu May 6 20:33:00 2004
@@ -340,27 +340,25 @@
=cut
sub LanguageHandle {
- my $self = shift;
- if ( ( !defined $self->{'LangHandle'} )
- || ( !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' ) )
- || (@_) ) {
-
- if ( $RT::SystemUser and $self->id == $RT::SystemUser->id() ) {
- @_ = qw(en-US);
- }
-
- elsif ( $self->Lang ) {
- push @_, $self->Lang;
- }
- $self->{'LangHandle'} = RT::I18N->get_handle(@_);
- }
-
- # Fall back to english.
- unless ( $self->{'LangHandle'} ) {
- die "We couldn't get a dictionary. Nye mogu naidti slovar. No
-puedo encontrar dictionario.";
- }
- return ( $self->{'LangHandle'} );
+ my $self = shift;
+ if ( ( !defined $self->{'LangHandle'} )
+ || ( !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' ) )
+ || (@_) ) {
+ if ( (!$RT::SystemUser || $self->id == $RT::SystemUser->id() )) {
+ @_ = qw(en-US);
+ }
+
+ elsif ( $self->Lang ) {
+ push @_, $self->Lang;
+ }
+ $self->{'LangHandle'} = RT::I18N->get_handle(@_);
+ }
+
+ # Fall back to english.
+ unless ( $self->{'LangHandle'} ) {
+ die "We couldn't get a dictionary. Nye mogu naidti slovar. No puedo encontrar dictionario.";
+ }
+ return ( $self->{'LangHandle'} );
}
sub loc {
Modified: rt/branches/rt-3.3/lib/RT/EmailParser.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/EmailParser.pm (original)
+++ rt/branches/rt-3.3/lib/RT/EmailParser.pm Thu May 6 20:33:00 2004
@@ -183,7 +183,7 @@
close($fh);
if ( -f $temp_file ) {
$self->ParseMIMEEntityFromFile($temp_file, $args{'Decode'});
- File::Temp::unlink0( $fh, $temp_file );
+ unlink($temp_file );
}
} #If for some reason we weren't able to parse the message using a temp file # try it with a scalar
if ( !$self->Entity ) {
@@ -626,19 +626,21 @@
## Over max size and return them
sub _SetupMIMEParser {
- my $self = shift;
+ my $self = shift;
my $parser = shift;
- my $AttachmentDir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 );
+ #$RT::Logger->crit( $self->{'AttachmentDir'} );
# Set up output directory for files:
- $parser->output_dir("$AttachmentDir");
- $parser->filer->ignore_filename(1);
+ my $tmpdir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 );
+ push ( @{ $self->{'AttachmentDirs'} }, $tmpdir );
+ $parser->output_dir($tmpdir);
+ $parser->filer->ignore_filename(1);
#If someone includes a message, extract it
$parser->extract_nested_messages(1);
- $parser->extract_uuencode(1); ### default is false
+ $parser->extract_uuencode(1); ### default is false
# Set up the prefix for files with auto-generated names:
$parser->output_prefix("part");
@@ -647,8 +649,16 @@
$parser->output_to_core(0);
}
+
# }}}
+sub DESTROY {
+ my $self = shift;
+ File::Path::rmtree([@{$self->{'AttachmentDirs'}}],0,1);
+}
+
+
+
eval "require RT::EmailParser_Vendor";
die $@ if ($@ && $@ !~ qr{^Can't locate RT/EmailParser_Vendor.pm});
eval "require RT::EmailParser_Local";
Modified: rt/branches/rt-3.3/lib/RT/GroupMembers_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/GroupMembers_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/GroupMembers_Overlay.pm Thu May 6 20:33:00 2004
@@ -51,7 +51,7 @@
=head2 LimitToUsers
Limits this search object to users who are members of this group.
-This is really useful when you want to haave your UI seperate out
+This is really useful when you want to have your UI separate out
groups from users for display purposes
=cut
@@ -78,7 +78,7 @@
=head2 LimitToGroups
Limits this search object to Groups who are members of this group.
-This is really useful when you want to haave your UI seperate out
+This is really useful when you want to have your UI separate out
groups from users for display purposes
=cut
Modified: rt/branches/rt-3.3/lib/RT/Group_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Group_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Group_Overlay.pm Thu May 6 20:33:00 2004
@@ -1,3 +1,4 @@
+
# BEGIN LICENSE BLOCK
#
# Copyright (c) 1996-2003 Jesse Vincent <jesse at bestpractical.com>
Modified: rt/branches/rt-3.3/lib/RT/Groups_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Groups_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Groups_Overlay.pm Thu May 6 20:33:00 2004
@@ -236,7 +236,6 @@
IncludeSuperusers => undef,
@_ );
- my $groupprinc = $self->NewAlias('Principals');
my $acl = $self->NewAlias('ACL');
# {{{ Find only rows where the right granted is the one we're looking up or _possibly_ superuser
@@ -273,7 +272,7 @@
$or_check_roles =
" OR ( ( (main.Domain = 'RT::Queue-Role' AND main.Instance = " .
$args{'Object'}->Id . ") $or_check_ticket_roles ) " .
- " AND main.Type = $acl.PrincipalType AND main.id = $groupprinc.id) ";
+ " AND main.Type = $acl.PrincipalType AND main.id = $acl.PrincipalId) ";
}
if ( $args{'IncludeSystemRights'} ) {
@@ -291,12 +290,11 @@
$self->_AddSubClause( "WhichGroup",
qq{
- ( ( $acl.PrincipalId = $groupprinc.id
+ ( ( $acl.PrincipalId = main.id
AND $acl.PrincipalType = 'Group'
AND ( main.Domain = 'SystemInternal'
OR main.Domain = 'UserDefined'
- OR main.Domain = 'ACLEquivalence')
- AND main.id = $groupprinc.id)
+ OR main.Domain = 'ACLEquivalence'))
$or_check_roles)
}
);
@@ -355,5 +353,18 @@
);
}
# }}}
+
+sub _DoSearch {
+ my $self = shift;
+
+ #unless we really want to find disabled rows, make sure we\'re only finding enabled ones.
+ unless($self->{'find_disabled_rows'}) {
+ $self->LimitToEnabled();
+ }
+
+ return($self->SUPER::_DoSearch(@_));
+
+}
+
1;
Modified: rt/branches/rt-3.3/lib/RT/Handle.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Handle.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Handle.pm Thu May 6 20:33:00 2004
@@ -60,7 +60,6 @@
sub Connect {
my $self = shift;
-
if ($RT::DatabaseType eq 'Oracle') {
$ENV{'NLS_LANG'} = ".UTF8";
}
Modified: rt/branches/rt-3.3/lib/RT/I18N/cs.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/cs.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/cs.po Thu May 6 20:33:00 2004
@@ -259,7 +259,7 @@
msgstr "(Zatrhněte pro smazání)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Zadejte identifikátory či URL požadavku, oddělené mezerami)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/de.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/de.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/de.po Thu May 6 20:33:00 2004
@@ -275,7 +275,7 @@
msgstr "(Markieren um zu löschen)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Gib Anfragenummern oder URLs getrennt durch Leerzeichen ein)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/es.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/es.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/es.po Thu May 6 20:33:00 2004
@@ -275,7 +275,7 @@
msgstr "(Marque las cajas para borrar)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Introduzca los identificadores de ticket o URLs, separados por espacios)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/fr.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/fr.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/fr.po Thu May 6 20:33:00 2004
@@ -281,7 +281,7 @@
msgstr "(Cocher la case pour supprimer)"
#: html/Ticket/Create.html:177
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Entrer les numéros de tickets ou les URLs, séparés par des espaces)"
#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59
Modified: rt/branches/rt-3.3/lib/RT/I18N/he.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/he.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/he.po Thu May 6 20:33:00 2004
@@ -279,7 +279,7 @@
msgstr "(סמן תיבות כדי למחוק)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr ""
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/it.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/it.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/it.po Thu May 6 20:33:00 2004
@@ -366,7 +366,7 @@
msgstr "(Spunta la casella per cancellare)"
#: html/Ticket/Create.html:177
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Inserire il numero di tickets o gli URL, separati da spazi)"
#. ($RT::CorrespondAddress)
Modified: rt/branches/rt-3.3/lib/RT/I18N/ja.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/ja.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/ja.po Thu May 6 20:33:00 2004
@@ -280,7 +280,7 @@
msgstr ""
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(チケットIDまたはURLsを空欄で区切って入力してください)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/nl.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/nl.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/nl.po Thu May 6 20:33:00 2004
@@ -273,7 +273,7 @@
msgstr ""
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Vul ticket ids of URLs in, gescheiden door spaties)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/no.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/no.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/no.po Thu May 6 20:33:00 2004
@@ -282,7 +282,7 @@
msgstr "(Merk boksene for å slette)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/pt_br.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/pt_br.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/pt_br.po Thu May 6 20:33:00 2004
@@ -279,7 +279,7 @@
msgstr "(Assinale para remover)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Entre com identificadores de tíquetes ou URLs, separados por espaços)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/I18N/ru.po
==============================================================================
--- rt/branches/rt-3.3/lib/RT/I18N/ru.po (original)
+++ rt/branches/rt-3.3/lib/RT/I18N/ru.po Thu May 6 20:33:00 2004
@@ -249,7 +249,7 @@
msgstr "(Пометьте то, что хотите удалить)"
#: html/Ticket/Create.html:178
-msgid "(Enter ticket ids or URLs, seperated with spaces)"
+msgid "(Enter ticket ids or URLs, separated with spaces)"
msgstr "(Введите номера или ссылки на тикеты. Несколько тикетов разделяются пробелами.)"
#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60
Modified: rt/branches/rt-3.3/lib/RT/Interface/Email.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Interface/Email.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Interface/Email.pm Thu May 6 20:33:00 2004
@@ -182,14 +182,13 @@
}
-
if ($RT::MailCommand eq 'sendmailpipe') {
open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0);
print MAIL $entity->as_string;
close(MAIL);
}
else {
- $entity->send($RT::MailCommand, $RT::MailParams);
+ $entity->send($RT::MailCommand, $RT::MailParams);
}
}
@@ -416,7 +415,6 @@
$parser->SmartParseMIMEEntityFromScalar( Message => $args{'message'});
-
if (!$parser->Entity()) {
MailError(
To => $RT::OwnerEmail,
Modified: rt/branches/rt-3.3/lib/RT/Interface/Web.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Interface/Web.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Interface/Web.pm Thu May 6 20:33:00 2004
@@ -101,6 +101,7 @@
default_escape_flags => 'h',
allow_globals => [qw(%session)],
autoflush => 1,
+ @_
);
@@ -123,7 +124,7 @@
sub EscapeUTF8 {
my $ref = shift;
- my $val = (Encode::is_utf8($$ref) ? Encode::encode_utf8($$ref) : $$ref);
+ my $val = (Encode::is_utf8($$ref) ? Encode::encode_utf8($$ref) : $$ref);
$val =~ s/&/&/g;
$val =~ s/</</g;
$val =~ s/>/>/g;
@@ -920,7 +921,7 @@
my $Object = $args{'Object'};
my @results = $Object->Update(AttributesRef => $args{'AttributesRef'},
ARGSRef => $args{'ARGSRef'},
- AttributePrefix => undef,
+ AttributePrefix => $args{'AttributePrefix'}
);
return (@results);
Modified: rt/branches/rt-3.3/lib/RT/Principal_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Principal_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Principal_Overlay.pm Thu May 6 20:33:00 2004
@@ -557,7 +557,7 @@
Returns a list uniquely representing an object or normal scalar.
For scalars, its string value is returned; for objects that has an
-id() method, its class name and Id are returned as a string seperated by a "-".
+id() method, its class name and Id are returned as a string separated by a "-".
=cut
Modified: rt/branches/rt-3.3/lib/RT/Queue_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Queue_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Queue_Overlay.pm Thu May 6 20:33:00 2004
@@ -49,6 +49,7 @@
use vars qw(@STATUS @ACTIVE_STATUS @INACTIVE_STATUS $RIGHTS);
use RT::Groups;
use RT::ACL;
+use RT::EmailParser;
@ACTIVE_STATUS = qw(new open stalled);
@@ -657,10 +658,13 @@
# if the user doesn't exist, we need to create a new user
my $new_user = RT::User->new($RT::SystemUser);
+ my ( $Address, $Name ) =
+ RT::EmailParser::ParseAddressFromHeader('', $args{'Email'});
+
my ( $Val, $Message ) = $new_user->Create(
- Name => $args{'Email'},
- EmailAddress => $args{'Email'},
- RealName => $args{'Email'},
+ Name => $Address,
+ EmailAddress => $Address,
+ RealName => $Name,
Privileged => 0,
Comments => 'Autocreated when added as a watcher');
unless ($Val) {
Modified: rt/branches/rt-3.3/lib/RT/Template_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Template_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Template_Overlay.pm Thu May 6 20:33:00 2004
@@ -318,20 +318,9 @@
my $parser = MIME::Parser->new();
- # Setup output directory for files. from RT::EmailParser::_SetupMIMEParser
- if ( my $AttachmentDir =
- eval { File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ) } )
- {
-
- # Set up output directory for files:
- $parser->output_dir("$AttachmentDir");
- }
- else {
- $RT::Logger->error("Couldn't write attachments to temp dir on disk. using more memory and processor.");
# On some situations TMPDIR is non-writable. sad but true.
$parser->output_to_core(1);
$parser->tmp_to_core(1);
- }
#If someone includes a message, don't extract it
$parser->extract_nested_messages(1);
@@ -423,4 +412,5 @@
}
# }}}
+
1;
Modified: rt/branches/rt-3.3/lib/RT/Ticket_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Ticket_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Ticket_Overlay.pm Thu May 6 20:33:00 2004
@@ -338,7 +338,6 @@
Resolved => undef,
MIMEObj => undef,
_RecordTransaction => 1,
-
@_
);
@@ -2715,7 +2714,7 @@
# We use EffectiveId here even though it duplicates information from
# the links table becasue of the massive performance hit we'd take
- # by trying to do a seperate database query for merge info everytime
+ # by trying to do a separate database query for merge info everytime
# loaded a ticket.
#update this ticket's effective id to the new ticket's id.
Modified: rt/branches/rt-3.3/lib/RT/Tickets_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Tickets_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Tickets_Overlay.pm Thu May 6 20:33:00 2004
@@ -542,14 +542,6 @@
$sb->_OpenParen;
- # Join Transactions To Attachments
- $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId',
- ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id');
-
- # Join Transactions to Tickets
- $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH!
- ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket');
-
#Search for the right field
$sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias},
FIELD => $field,
@@ -559,6 +551,14 @@
@rest
);
+ # Join Transactions To Attachments
+ $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId',
+ ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id');
+
+ # Join Transactions to Tickets
+ $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH!
+ ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket');
+
$sb->_CloseParen;
}
Modified: rt/branches/rt-3.3/lib/RT/Tickets_Overlay_SQL.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Tickets_Overlay_SQL.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Tickets_Overlay_SQL.pm Thu May 6 20:33:00 2004
@@ -457,8 +457,53 @@
ok ($cols[0] == undef, "We haven't explicitly asked to display anything");
+my (@ids, @expectedids);
+my $t = RT::Ticket->new($RT::SystemUser);
+my $string = 'subject/content SQL test';
+ok( $t->Create(Queue => 'General', Subject => $string), "Ticket Created");
+
+push @ids, $t->Id;
+
+my $Message = MIME::Entity->build(
+ Subject => 'this is my subject',
+ From => 'jesse at example.com',
+ Data => [ $string ],
+ );
+
+ok( $t->Create(Queue => 'General', Subject => 'another ticket', MIMEObj => $Message, MemberOf => $ids[0]), "Ticket Created");
+
+push @ids, $t->Id;
+
+$query = ("Subject LIKE '$string' OR Content LIKE '$string'");
+
+my ($id, $msg) = $tix->FromSQL($query);
+
+ok ($id, $msg);
+
+is ($tix->Count, scalar @ids, "number of returned tickets same as entered");
+
+while (my $tick = $tix->Next) {
+ push @expectedids, $tick->Id;
+}
+
+ok (eq_array(\@ids, \@expectedids), "returned expected tickets");
+
+$query = ("id = $ids[0] OR MemberOf = $ids[0]");
+
+my ($id, $msg) = $tix->FromSQL($query);
+
+ok ($id, $msg);
+
+is ($tix->Count, scalar @ids, "number of returned tickets same as entered");
+
+ at expectedids = ();
+while (my $tick = $tix->Next) {
+ push @expectedids, $tick->Id;
+}
+
+ok (eq_array(\@ids, \@expectedids), "returned expected tickets");
=end testing
@@ -505,8 +550,8 @@
$self->SUPER::Limit( FIELD => 'Type', OPERATOR => '=', VALUE => 'ticket');
}
- # We should never find deleted
- $self->SUPER::Limit( FIELD => 'Status', OPERATOR => '!=', VALUE => 'deleted');
+ # We never ever want to show deleted tickets
+ $self->SUPER::Limit(FIELD => 'Status' , OPERATOR => '!=', VALUE => 'deleted');
# set SB's dirty flag
Modified: rt/branches/rt-3.3/lib/RT/Transactions_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/Transactions_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/Transactions_Overlay.pm Thu May 6 20:33:00 2004
@@ -92,11 +92,9 @@
my $Transaction = $self->SUPER::Next();
if ((defined($Transaction)) and (ref($Transaction))) {
- if ($Transaction->__Value('Type') =~ /^Comment/ &&
- $Transaction->TicketObj->CurrentUserHasRight('ShowTicketComments')) {
- return($Transaction);
- } elsif ($Transaction->__Value('Type') !~ /^Comment/ &&
- $Transaction->TicketObj->CurrentUserHasRight('ShowTicket')) {
+ # If the user can see the transaction's type, then they can
+ # see the transaction and we should hand it back.
+ if ($Transaction->Type) {
return($Transaction);
}
@@ -113,24 +111,6 @@
}
# }}}
-=head2 example methods
-
- Queue RT::Queue or Queue Id
- Ticket RT::Ticket or Ticket Id
-
-
-LimitDate
-
-Type TRANSTYPE
-Field STRING
-OldValue OLDVAL
-NewValue NEWVAL
-Data DATA
-TimeTaken
-Actor USEROBJ/USERID
-ContentMatches STRING
-
-=cut
1;
Modified: rt/branches/rt-3.3/lib/RT/User_Overlay.pm
==============================================================================
--- rt/branches/rt-3.3/lib/RT/User_Overlay.pm (original)
+++ rt/branches/rt-3.3/lib/RT/User_Overlay.pm Thu May 6 20:33:00 2004
@@ -53,6 +53,7 @@
use Digest::MD5;
use RT::Principals;
use RT::ACE;
+use RT::EmailParser;
# {{{ sub _Accessible
@@ -221,14 +222,15 @@
my $principal_id = $principal->Create(PrincipalType => 'User',
Disabled => $args{'Disabled'},
ObjectId => '0');
- $principal->__Set(Field => 'ObjectId', Value => $principal_id);
# If we couldn't create a principal Id, get the fuck out.
unless ($principal_id) {
$RT::Handle->Rollback();
- $RT::Logger->crit("Couldn't create a Principal on new user create. Strange things are afoot at the circle K");
+ $RT::Logger->crit("Couldn't create a Principal on new user create.");
+ $RT::Logger->crit("Strange things are afoot at the circle K");
return ( 0, $self->loc('Could not create user') );
}
+ $principal->__Set(Field => 'ObjectId', Value => $principal_id);
delete $args{'Disabled'};
$self->SUPER::Create(id => $principal_id , %args);
@@ -242,15 +244,6 @@
return ( 0, $self->loc('Could not create user') );
}
-
- #TODO post 2.0
- #if ($args{'SendWelcomeMessage'}) {
- # #TODO: Check if the email exists and looks valid
- # #TODO: Send the user a "welcome message"
- #}
-
-
-
my $aclstash = RT::Group->new($self->CurrentUser);
my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal);
@@ -260,31 +253,55 @@
return ( 0, $self->loc('Could not create user') );
}
- $RT::Handle->Commit;
- #$RT::Logger->debug("Adding the user as a member of everyone");
my $everyone = RT::Group->new($self->CurrentUser);
$everyone->LoadSystemInternalGroup('Everyone');
- $everyone->AddMember($self->PrincipalId);
+ unless ($everyone->id) {
+ $RT::Logger->crit("Could not load Everyone group on user creation.");
+ $RT::Handle->Rollback();
+ return ( 0, $self->loc('Could not create user') );
+ }
+
+
+ my ($everyone_id, $everyone_msg) = $everyone->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId);
+ unless ($everyone_id) {
+ $RT::Logger->crit("Could not add user to Everyone group on user creation.");
+ $RT::Logger->crit($everyone_msg);
+ $RT::Handle->Rollback();
+ return ( 0, $self->loc('Could not create user') );
+ }
+
+ my $access_class = RT::Group->new($self->CurrentUser);
if ($privileged) {
- my $priv = RT::Group->new($self->CurrentUser);
- #$RT::Logger->debug("Making ".$self->Id." a privileged user");
- $priv->LoadSystemInternalGroup('Privileged');
- $priv->AddMember($self->PrincipalId);
+ $access_class->LoadSystemInternalGroup('Privileged');
} else {
- my $unpriv = RT::Group->new($self->CurrentUser);
- #$RT::Logger->debug("Making ".$self->Id." an unprivileged user");
- $unpriv->LoadSystemInternalGroup('Unprivileged');
- $unpriv->AddMember($self->PrincipalId);
+ $access_class->LoadSystemInternalGroup('Unprivileged');
}
+ unless ($access_class->id) {
+ $RT::Logger->crit("Could not load Privileged or Unprivileged group on user creation");
+ $RT::Handle->Rollback();
+ return ( 0, $self->loc('Could not create user') );
+ }
+
+
+ my ($ac_id, $ac_msg) = $access_class->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId);
+
+ unless ($ac_id) {
+ $RT::Logger->crit("Could not add user to Privileged or Unprivileged group on user creation. Aborted");
+ $RT::Logger->crit($ac_msg);
+ $RT::Handle->Rollback();
+ return ( 0, $self->loc('Could not create user') );
+ }
+
+
if ( $record_transaction ) {
$self->_NewTransaction( Type => "Create" );
}
+ $RT::Handle->Commit;
- # $RT::Logger->debug("Finished creating the user");
return ( $id, $self->loc('User created') );
}
@@ -322,6 +339,10 @@
my $self = shift;
my $val = shift;
+ #Check the ACL
+ unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) {
+ return ( 0, $self->loc('Permission Denied') );
+ }
my $priv = RT::Group->new($self->CurrentUser);
$priv->LoadSystemInternalGroup('Privileged');
@@ -343,7 +364,7 @@
return (0,$self->loc("That user is already privileged"));
}
if ($unpriv->HasMember($self->PrincipalObj)) {
- $unpriv->DeleteMember($self->PrincipalId);
+ $unpriv->_DeleteMember($self->PrincipalId);
} else {
# if we had layered transactions, life would be good
# sadly, we have to just go ahead, even if something
@@ -351,7 +372,7 @@
$RT::Logger->crit("User ".$self->Id." is neither privileged nor ".
"unprivileged. something is drastically wrong.");
}
- my ($status, $msg) = $priv->AddMember($self->PrincipalId);
+ my ($status, $msg) = $priv->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId);
if ($status) {
return (1, $self->loc("That user is now privileged"));
} else {
@@ -364,7 +385,7 @@
return (0,$self->loc("That user is already unprivileged"));
}
if ($priv->HasMember($self->PrincipalObj)) {
- $priv->DeleteMember($self->PrincipalId);
+ $priv->_DeleteMember( $self->PrincipalId);
} else {
# if we had layered transactions, life would be good
# sadly, we have to just go ahead, even if something
@@ -372,7 +393,7 @@
$RT::Logger->crit("User ".$self->Id." is neither privileged nor ".
"unprivileged. something is drastically wrong.");
}
- my ($status, $msg) = $unpriv->AddMember($self->PrincipalId);
+ my ($status, $msg) = $unpriv->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId);
if ($status) {
return (1, $self->loc("That user is now unprivileged"));
} else {
@@ -538,13 +559,17 @@
my ($val, $message);
+ my ( $Address, $Name ) =
+ RT::EmailParser::ParseAddressFromHeader('', $email);
+ $email = $Address;
+
$self->LoadByEmail($email);
$message = $self->loc('User loaded');
unless ($self->Id) {
( $val, $message ) = $self->Create(
Name => $email,
EmailAddress => $email,
- RealName => $email,
+ RealName => $Name,
Privileged => 0,
Comments => 'Autocreated when added as a watcher');
unless ($val) {
Modified: rt/branches/rt-3.3/sbin/rt-setup-database.in
==============================================================================
--- rt/branches/rt-3.3/sbin/rt-setup-database.in (original)
+++ rt/branches/rt-3.3/sbin/rt-setup-database.in Thu May 6 20:33:00 2004
@@ -453,6 +453,8 @@
$princ->LoadUserDefinedGroup( $item->{'GroupId'} );
} elsif ($item->{'GroupDomain'} eq 'SystemInternal') {
$princ->LoadSystemInternalGroup( $item->{'GroupType'} );
+ } elsif ($item->{'GroupDomain'} eq 'RT::System-Role') {
+ $princ->LoadSystemRoleGroup( $item->{'GroupType'} );
} elsif ($item->{'GroupDomain'} eq 'RT::Queue-Role' &&
$item->{'Queue'}) {
$princ->LoadQueueRoleGroup( Type => $item->{'GroupType'},
Modified: rt/branches/rt-3.3/sbin/rt-test-dependencies.in
==============================================================================
--- rt/branches/rt-3.3/sbin/rt-test-dependencies.in (original)
+++ rt/branches/rt-3.3/sbin/rt-test-dependencies.in Thu May 6 20:33:00 2004
@@ -188,6 +188,10 @@
DBD::Pg
.
+$deps{'SQLITE'} = [ _( << '.') ];
+DBD::SQLite
+.
+
if ($args{'download'}) {
my %modules;
@@ -231,16 +235,19 @@
print "perl:\n";
-print "\t5.8.0";
-eval {require 5.008};
+print "\t5.8.3";
+eval {require 5.008003};
if ($@) {
-print "...missing.\n";
- eval {require 5.006001};
+print "...MISSING.\n";
+ eval {require 5.008000};
if ($@) {
- print " RT is known to be non-functional on versions of perl older than 5.6.1. Please upgrade to 5.8.0 or newer";
+ print "\nRT is known to be non-functional on versions of perl older than 5.8.3.\nPlease upgrade to 5.8.3 or newer\n\n";
die;
- } else {
- print " RT is not supported on perl 5.6.1\n";
+ }
+
+ eval {require 5.008003};
+ if ($@) {
+ print "\nRT is known to be non-functional on versions of perl older than 5.8.3.\nPlease upgrade to 5.8.3 or newer\n\n";
}
} else {
print "...found\n";
More information about the Rt-commit
mailing list