[Bps-public-commit] RT-BugTracker-Public branch, 4.2-4.4-compatibility, created. 1.00-13-g54fb914

Brian Duggan brian at bestpractical.com
Wed Mar 8 14:24:49 EST 2017


The branch, 4.2-4.4-compatibility has been created
        at  54fb914ce75f2e26e4ad419ccf2be9e1fc7f4440 (commit)

- Log -----------------------------------------------------------------
commit a2cd1dcbbc6675b60ca3588e1f721ba734bda793
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 14:59:07 2017 -0500

    Update BPS copyright

diff --git a/Changes b/Changes
index f8d2ea2..3387741 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+1.05 2016-07-19
+ - Packaging updates
+ - Whitelist all query endpoints from CSRF protection
+
 1.00 2014-12-15
  - Packaging and documentation updates
 
diff --git a/MANIFEST b/MANIFEST
index af8363a..40c120d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -44,7 +44,6 @@ inc/Module/Install/RTx.pm
 inc/Module/Install/RTx/Runtime.pm
 inc/Module/Install/Win32.pm
 inc/Module/Install/WriteAll.pm
-inc/unicore/Name.pm
 inc/YAML/Tiny.pm
 lib/RT/BugTracker/Public.pm
 Makefile.PL
diff --git a/META.yml b/META.yml
index c1c317e..dd4d8c7 100644
--- a/META.yml
+++ b/META.yml
@@ -23,7 +23,7 @@ requires:
   perl: 5.8.3
 resources:
   license: http://opensource.org/licenses/gpl-license.php
-version: '1.00'
+version: '1.05'
 x_module_install_rtx_version: '0.38'
 x_requires_rt: 4.0.0
 x_rt_too_new: 4.2.0
diff --git a/html/Callbacks/BugTracker-Public/Elements/Login/Default b/html/Callbacks/BugTracker-Public/Elements/Login/Default
index 2b7d87d..9f94e71 100644
--- a/html/Callbacks/BugTracker-Public/Elements/Login/Default
+++ b/html/Callbacks/BugTracker-Public/Elements/Login/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged b/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
index a0dfa88..7fd8e02 100644
--- a/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
+++ b/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/AfterSessionDelete b/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/AfterSessionDelete
index 339ef0b..5b3118d 100644
--- a/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/AfterSessionDelete
+++ b/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/AfterSessionDelete
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/Default b/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/Default
index fbe87cc..5df12e9 100644
--- a/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/Default
+++ b/html/Callbacks/BugTracker-Public/NoAuth/Logout.html/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/Search/Results.html/Initial b/html/Callbacks/BugTracker-Public/Search/Results.html/Initial
index 3f7c8c2..aec36a3 100644
--- a/html/Callbacks/BugTracker-Public/Search/Results.html/Initial
+++ b/html/Callbacks/BugTracker-Public/Search/Results.html/Initial
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/Ticket/Elements/ShowMessageHeaders/Default b/html/Callbacks/BugTracker-Public/Ticket/Elements/ShowMessageHeaders/Default
index c281dfe..8ab0370 100644
--- a/html/Callbacks/BugTracker-Public/Ticket/Elements/ShowMessageHeaders/Default
+++ b/html/Callbacks/BugTracker-Public/Ticket/Elements/ShowMessageHeaders/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/autohandler/Auth b/html/Callbacks/BugTracker-Public/autohandler/Auth
index b5d6ca6..26a30e5 100644
--- a/html/Callbacks/BugTracker-Public/autohandler/Auth
+++ b/html/Callbacks/BugTracker-Public/autohandler/Auth
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/autohandler/Default b/html/Callbacks/BugTracker-Public/autohandler/Default
index 0532814..bd40643 100644
--- a/html/Callbacks/BugTracker-Public/autohandler/Default
+++ b/html/Callbacks/BugTracker-Public/autohandler/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Callbacks/BugTracker-Public/autohandler/Final b/html/Callbacks/BugTracker-Public/autohandler/Final
index a56f3d1..bc15ead 100644
--- a/html/Callbacks/BugTracker-Public/autohandler/Final
+++ b/html/Callbacks/BugTracker-Public/autohandler/Final
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Elements/ShowUserPublic b/html/Elements/ShowUserPublic
index e84021e..437a8b7 100644
--- a/html/Elements/ShowUserPublic
+++ b/html/Elements/ShowUserPublic
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/NoAuth/css/bugtracker-public.css b/html/NoAuth/css/bugtracker-public.css
index 43480a0..f5f529d 100644
--- a/html/NoAuth/css/bugtracker-public.css
+++ b/html/NoAuth/css/bugtracker-public.css
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/NoAuth/js/bugtracker-public.js b/html/NoAuth/js/bugtracker-public.js
index ce0eea1..98cd4f7 100644
--- a/html/NoAuth/js/bugtracker-public.js
+++ b/html/NoAuth/js/bugtracker-public.js
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Browse.html b/html/Public/Browse.html
index bb00f6a..afd11e5 100755
--- a/html/Public/Browse.html
+++ b/html/Public/Browse.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Bug/Display.html b/html/Public/Bug/Display.html
index 68838ac..545ae85 100755
--- a/html/Public/Bug/Display.html
+++ b/html/Public/Bug/Display.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Bug/Elements/ShowSummary b/html/Public/Bug/Elements/ShowSummary
index eff225b..62192c1 100755
--- a/html/Public/Bug/Elements/ShowSummary
+++ b/html/Public/Bug/Elements/ShowSummary
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index d508072..b24f54b 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Bug/Update.html b/html/Public/Bug/Update.html
index 7aebdb2..e63a87c 100755
--- a/html/Public/Bug/Update.html
+++ b/html/Public/Bug/Update.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Dist/BeginsWith.html b/html/Public/Dist/BeginsWith.html
index bb00f6a..afd11e5 100755
--- a/html/Public/Dist/BeginsWith.html
+++ b/html/Public/Dist/BeginsWith.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Dist/Browse.html b/html/Public/Dist/Browse.html
index 55d2c55..4ab6825 100755
--- a/html/Public/Dist/Browse.html
+++ b/html/Public/Dist/Browse.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Dist/ByMaintainer.html b/html/Public/Dist/ByMaintainer.html
index c2fa0ca..680d6e9 100755
--- a/html/Public/Dist/ByMaintainer.html
+++ b/html/Public/Dist/ByMaintainer.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Dist/Display.html b/html/Public/Dist/Display.html
index 808c67c..d9fc932 100755
--- a/html/Public/Dist/Display.html
+++ b/html/Public/Dist/Display.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Dist/bugs.tsv b/html/Public/Dist/bugs.tsv
index 62c0c6a..e585f89 100755
--- a/html/Public/Dist/bugs.tsv
+++ b/html/Public/Dist/bugs.tsv
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Elements/DistributionList b/html/Public/Elements/DistributionList
index 3888b86..108e2ff 100644
--- a/html/Public/Elements/DistributionList
+++ b/html/Public/Elements/DistributionList
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Elements/ErrorNoDist b/html/Public/Elements/ErrorNoDist
index 650ea29..dcad339 100644
--- a/html/Public/Elements/ErrorNoDist
+++ b/html/Public/Elements/ErrorNoDist
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Elements/ErrorNoUser b/html/Public/Elements/ErrorNoUser
index b41826d..8c94954 100644
--- a/html/Public/Elements/ErrorNoUser
+++ b/html/Public/Elements/ErrorNoUser
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Elements/Tabs b/html/Public/Elements/Tabs
index 6faac4c..b122cf1 100755
--- a/html/Public/Elements/Tabs
+++ b/html/Public/Elements/Tabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Search/Results.html b/html/Public/Search/Results.html
index bcbd9a8..525e922 100644
--- a/html/Public/Search/Results.html
+++ b/html/Public/Search/Results.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Search/Simple.html b/html/Public/Search/Simple.html
index 1180fad..3d3203a 100644
--- a/html/Public/Search/Simple.html
+++ b/html/Public/Search/Simple.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Ticket/Attachment/WithHeaders/dhandler b/html/Public/Ticket/Attachment/WithHeaders/dhandler
index 2ebe24a..d8e1f45 100644
--- a/html/Public/Ticket/Attachment/WithHeaders/dhandler
+++ b/html/Public/Ticket/Attachment/WithHeaders/dhandler
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/Ticket/Attachment/dhandler b/html/Public/Ticket/Attachment/dhandler
index 917916e..dcc6111 100644
--- a/html/Public/Ticket/Attachment/dhandler
+++ b/html/Public/Ticket/Attachment/dhandler
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/autohandler b/html/Public/autohandler
index 07e03ae..01dd567 100644
--- a/html/Public/autohandler
+++ b/html/Public/autohandler
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/html/Public/index.html b/html/Public/index.html
index 228a773..006dd6f 100755
--- a/html/Public/index.html
+++ b/html/Public/index.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
diff --git a/lib/RT/BugTracker/Public.pm b/lib/RT/BugTracker/Public.pm
index 6550835..7fdaada 100644
--- a/lib/RT/BugTracker/Public.pm
+++ b/lib/RT/BugTracker/Public.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -53,7 +53,7 @@ use warnings;
 package RT::BugTracker::Public;
 use URI::Escape qw/ uri_escape /;
 
-our $VERSION = '1.00';
+our $VERSION = '1.05';
 
 RT->AddJavaScript("bugtracker-public.js");
 RT->AddStyleSheets("bugtracker-public.css");
@@ -195,7 +195,7 @@ or via the web at
 
 =head1 LICENSE AND COPYRIGHT
 
-This software is Copyright (c) 2014 by Best Practical Solutions
+This software is Copyright (c) 2017 by Best Practical Solutions
 
 This is free software, licensed under:
 

commit 3045d2b159e9ab71c04dc298fff05b48fb20c8f6
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 15:09:07 2017 -0500

    Update Makefile and POD for 4.2 and 4.4
    
    The subsequent changes in this branch break compatibility with RT
    <=4.0. The required version in Makefile.PL reflects this. POD includes
    configuration instructions for >=4.2, only.
    
    This change sets RT too new to 4.6.

diff --git a/Makefile.PL b/Makefile.PL
index e9d76fa..937f700 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -2,8 +2,8 @@ use inc::Module::Install;
 
 RTx('RT-BugTracker-Public');
 
-requires_rt('4.0.0');
-rt_too_new('4.2.0');
+requires_rt('4.2.0');
+rt_too_new('4.6.0');
 
 sign();
 WriteAll();
diff --git a/lib/RT/BugTracker/Public.pm b/lib/RT/BugTracker/Public.pm
index 7fdaada..f51895f 100644
--- a/lib/RT/BugTracker/Public.pm
+++ b/lib/RT/BugTracker/Public.pm
@@ -78,9 +78,7 @@ May need root permissions
 
 Add this line:
 
-    Set(@Plugins, qw(RT::BugTracker::Public));
-
-or add C<RT::BugTracker::Public> to your existing C<@Plugins> line.
+    Plugin('RT::BugTracker::Public');
 
 =item Clear your mason cache
 

commit 0d9576e4b1d43373cb52004a1e2f94d4b6866bf9
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 16:16:33 2017 -0500

    Enable optional public bug reporting through web UI
    
    Add the WebPublicUserReporting config variable, initialized to 0.
    
    When set, this variable allows the WebPublicUser to create bugs
    through the web UI.

diff --git a/etc/RT_SiteConfig.pm b/etc/RT_SiteConfig.pm
index 3fae53c..67f690e 100644
--- a/etc/RT_SiteConfig.pm
+++ b/etc/RT_SiteConfig.pm
@@ -1,4 +1,4 @@
 # Read more about options in lib/RT/BugTracker/Public.pm
 
 Set($WebPublicUser, 'public');
-
+Set($WebPublicUserReporting, 0);
diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index b24f54b..5ca0411 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -81,7 +81,7 @@ public and indexed by search engines.
 <& /Dist/Elements/ShowBugtracker, Queue => $QueueObj &>
 <& /Dist/Elements/ShowNotes, Queue => $QueueObj &>
 
-% if ( $session{'CurrentUser'}->Name eq $RT::WebPublicUser ) {
+% if ( $session{'CurrentUser'}->Name eq $RT::WebPublicUser && !RT->Config->Get("WebPublicUserReporting") ) {
 
 <p style="font-weight: bold">
   The quickest way to report a bug in <% $QueueObj->Name %> is by sending email to
diff --git a/lib/RT/BugTracker/Public.pm b/lib/RT/BugTracker/Public.pm
index f51895f..57ff637 100644
--- a/lib/RT/BugTracker/Public.pm
+++ b/lib/RT/BugTracker/Public.pm
@@ -115,6 +115,13 @@ The public user should probably be unprivileged and have the following rights
 If you want the public UI to do anything useful. It should NOT have the
 ModifySelf right.
 
+=head2 WebPublicUserReporting
+
+By default, the web public user cannot create bug reports through the
+web UI. To allow this, add this line:
+
+    Set($WebPublicUserReporting, 1);
+
 =cut
 
 sub IsPublicUser {

commit e5a2ecaba812f8955be0d7d8000ea2560ea31ee0
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 15:23:51 2017 -0500

    Remove trailing whitespace in html/Public/Bug/Display.html

diff --git a/html/Public/Bug/Display.html b/html/Public/Bug/Display.html
index 545ae85..182d282 100755
--- a/html/Public/Bug/Display.html
+++ b/html/Public/Bug/Display.html
@@ -45,7 +45,7 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
-<& /Elements/Header, 
+<& /Elements/Header,
     Title => $title &>
 <& /Elements/Tabs &>
 
@@ -93,12 +93,12 @@ unless ($id || $TicketObj) {
 
 if ($ARGS{'id'} eq 'new') {
     # {{{ Create a new ticket
-    
-    my $Queue = new RT::Queue($session{'CurrentUser'});	
+
+    my $Queue = new RT::Queue($session{'CurrentUser'});
     unless ($Queue->Load($ARGS{'Queue'})) {
 	Abort('Queue not found');
     }
-    
+
     unless ($Queue->CurrentUserHasRight('CreateTicket')) {
 	Abort('You have no permission to create tickets in that queue.');
     }
@@ -109,7 +109,7 @@ if ($ARGS{'id'} eq 'new') {
 	Abort("No permission to view newly created ticket #".$TicketObj->id.".");
 	}
     # }}}
-} else { 
+} else {
     if (!$TicketObj) {
 
 	$TicketObj = RT::Ticket->new($session{'CurrentUser'});
@@ -130,7 +130,7 @@ if ($ARGS{'id'} eq 'new') {
 
     $ARGS{'UpdateContent'} =~ s/\r\n/\n/g if defined $ARGS{'UpdateContent'};
     if ( $ARGS{'UpdateTimeWorked'} ||
-	 $session{'Attachments'} || 
+	 $session{'Attachments'} ||
 	 (   defined $ARGS{'UpdateContent'}
              && $ARGS{'UpdateContent'} ne ''
 	     && $ARGS{'UpdateContent'} ne "-- \n"
@@ -148,13 +148,13 @@ if ($ARGS{'id'} eq 'new') {
     push (@Actions, @BasicActions, @results);
 }
 
-# This code does automatic redirection if any updates happen. 
+# This code does automatic redirection if any updates happen.
 # It doesn't work for the client.
 
 
 
 if (@Actions) {
-    # We've done something, so we need to clear the decks to avoid 
+    # We've done something, so we need to clear the decks to avoid
     # resubmission on refresh.
     # But we need to store Actions somewhere too, so we don't lose them.
     $session{"Actions"} = \@Actions;
@@ -206,7 +206,7 @@ sub _UpdateMessage {
 
         my $Message = MakeMIMEEntity(%mime);
 
-        $Message->head->add( 'Message-ID' => 
+        $Message->head->add( 'Message-ID' =>
               "<rt-"
               . $RT::VERSION . "-"
               . $$ . "-"
@@ -226,10 +226,10 @@ sub _UpdateMessage {
         }
 
         if ( $old_txn->Message && $old_txn->Message->First ) {
-            my @in_reply_to = split(/\s+/m, $old_txn->Message->First->GetHeader('In-Reply-To') || '');  
-            my @references = split(/\s+/m, $old_txn->Message->First->GetHeader('References') || '' );  
-            my @msgid = split(/\s+/m,$old_txn->Message->First->GetHeader('Message-ID') || ''); 
-            my @rtmsgid = split(/\s+/m,$old_txn->Message->First->GetHeader('RT-Message-ID') || ''); 
+            my @in_reply_to = split(/\s+/m, $old_txn->Message->First->GetHeader('In-Reply-To') || '');
+            my @references = split(/\s+/m, $old_txn->Message->First->GetHeader('References') || '' );
+            my @msgid = split(/\s+/m,$old_txn->Message->First->GetHeader('Message-ID') || '');
+            my @rtmsgid = split(/\s+/m,$old_txn->Message->First->GetHeader('RT-Message-ID') || '');
 
             $Message->head->replace( 'In-Reply-To', join (' ', @rtmsgid ? @rtmsgid : @msgid));
             $Message->head->replace( 'References', join(' ', @references, @msgid, @rtmsgid));

commit e5d648c15630a303959093657ab603ebe44c5905
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 15:24:59 2017 -0500

    Move CSS and JS from html/NoAuth to static

diff --git a/html/NoAuth/css/bugtracker-public.css b/html/NoAuth/css/bugtracker-public.css
deleted file mode 100644
index f5f529d..0000000
--- a/html/NoAuth/css/bugtracker-public.css
+++ /dev/null
@@ -1,79 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-/* Similar to core RT's "sidebyside" styles */
-
-#reporting-a-bug {
-    float: right;
-    width: 58%;
-    clear: right;
-}
-
-.reporting-a-bug-instructions {
-    float: left;
-    width: 40%;
-    clear: left;
-}
-
- at media (max-width: 950px) {
-    /* Revert to a single column when we're less than 1000px wide */
-    #reporting-a-bug, .reporting-a-bug-instructions {
-        float: none;
-        width: auto;
-        clear: both;
-    }
-}
-
-#reporting-a-bug .edit-custom-field {
-    /* we're in a thinner column most of the time, make room for the default margin */
-    width: 45%;
-}
-
-#reporting-a-bug .edit-custom-field:first-child {
-    display: block;
-    float: none;
-}
diff --git a/html/NoAuth/js/bugtracker-public.js b/html/NoAuth/js/bugtracker-public.js
deleted file mode 100644
index 98cd4f7..0000000
--- a/html/NoAuth/js/bugtracker-public.js
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-jQuery(function() {
-    jQuery("a[data-bug-email]").each(function() {
-        var a = jQuery(this);
-        a.attr("href", "mailto:bug-"
-                       + encodeURIComponent(a.attr("data-bug-email"))
-                       + "@rt.cpan.org");
-    });
-});
diff --git a/static/css/bugtracker-public.css b/static/css/bugtracker-public.css
new file mode 100644
index 0000000..3962274
--- /dev/null
+++ b/static/css/bugtracker-public.css
@@ -0,0 +1,32 @@
+/* Similar to core RT's "sidebyside" styles */
+
+#reporting-a-bug {
+    float: right;
+    width: 58%;
+    clear: right;
+}
+
+.reporting-a-bug-instructions {
+    float: left;
+    width: 40%;
+    clear: left;
+}
+
+ at media (max-width: 950px) {
+    /* Revert to a single column when we're less than 1000px wide */
+    #reporting-a-bug, .reporting-a-bug-instructions {
+        float: none;
+        width: auto;
+        clear: both;
+    }
+}
+
+#reporting-a-bug .edit-custom-field {
+    /* we're in a thinner column most of the time, make room for the default margin */
+    width: 45%;
+}
+
+#reporting-a-bug .edit-custom-field:first-child {
+    display: block;
+    float: none;
+}
diff --git a/static/js/bugtracker-public.js b/static/js/bugtracker-public.js
new file mode 100644
index 0000000..93ab5a7
--- /dev/null
+++ b/static/js/bugtracker-public.js
@@ -0,0 +1,8 @@
+jQuery(function() {
+    jQuery("a[data-bug-email]").each(function() {
+        var a = jQuery(this);
+        a.attr("href", "mailto:bug-"
+                       + encodeURIComponent(a.attr("data-bug-email"))
+                       + "@rt.cpan.org");
+    });
+});

commit 3005efac463a681ce3fdca1f7d934b58b40c037c
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 23:44:40 2017 -0500

    Use WebDomain instead of hardcoded rt.cpan.org
    
    RT::BugTracker and RT::BugTracker::Public both hardcode 'rt.cpan.org'
    in several places. This change replaces it with the value of the RT
    config variable, WebDomain.

diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index 5ca0411..c2309e5 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -85,7 +85,7 @@ public and indexed by search engines.
 
 <p style="font-weight: bold">
   The quickest way to report a bug in <% $QueueObj->Name %> is by sending email to
-  <a style="font-size: 1.2em" href="#" data-bug-email="<% $QueueObj->Name %>">bug-<% $QueueObj->Name %> <i>[at]</i> rt.cpan.org</a>.
+  <a style="font-size: 1.2em" href="#" data-bug-email="<% $QueueObj->Name %>">bug-<% $QueueObj->Name %> <i>[at]</i> <% RT->Config->Get("WebDomain") %></a>.
 </p>
 
 <p>
diff --git a/static/js/bugtracker-public.js b/static/js/bugtracker-public.js
index 93ab5a7..427e7d8 100644
--- a/static/js/bugtracker-public.js
+++ b/static/js/bugtracker-public.js
@@ -3,6 +3,6 @@ jQuery(function() {
         var a = jQuery(this);
         a.attr("href", "mailto:bug-"
                        + encodeURIComponent(a.attr("data-bug-email"))
-                       + "@rt.cpan.org");
+                       + "@" + RT.Config.WebDomain);
     });
 });

commit f18af3b589c3c8dc652c39df0a06ce4e759db1d9
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Fri Feb 24 09:09:18 2017 -0500

    Fix Ticket CF editing in public bug report page
    
    Updated use of /Elements/EditCustomFields in /Public/Bug/Report.html
    to mirror use in /Ticket/Create.html. Pass TicketObj instead of
    QueueObj.

diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index c2309e5..72fc71b 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -96,7 +96,7 @@ public and indexed by search engines.
 </p>
 
 % } else {
-<form action="<%$RT::WebPath%>/Public/Bug/Report.html" method="POST" enctype="multipart/form-data" name="TicketCreate">
+<form action="<% RT->Config->Get('WebPath') %>/Public/Bug/Report.html" method="POST" enctype="multipart/form-data" name="TicketCreate">
 <input type="hidden" class="hidden" name="id" value="new" />
 <input type="hidden" class="hidden" name="Status" value="new" />
 <div id="Ticket-Create-basics">
@@ -124,7 +124,12 @@ public and indexed by search engines.
 </tr>
 <tr>
 <td colspan="6">
-<& /Ticket/Elements/EditCustomFields, QueueObj => $QueueObj &>
+  <& /Elements/EditCustomFields,
+     Object => $ticket,
+     CustomFields => $CFs,
+     InTable => 1,
+     KeepValue => 1,
+  &>
 </td>
 </tr>
 % if ($TxnCFs->Count) {
@@ -204,9 +209,11 @@ Other things that are often helpful:
 </div>
 
 <%INIT>
+my $current_user = $session{'CurrentUser'};
+
 $Queue =~ s/::/-/g;
 
-my $QueueObj = new RT::Queue($session{'CurrentUser'});
+my $QueueObj = RT::Queue->new($current_user);
 $QueueObj->Load($Queue);
 
 if (not $QueueObj->Id) {
@@ -223,6 +230,8 @@ my $ValidCFs = $m->comp(
     ARGSRef => \%ARGS
 );
 
+my $ticket = RT::Ticket->new($current_user); # empty ticket object
+
 # if no due date has been set explicitly, then use the
 # queue's default if it exists
 if ($QueueObj->DefaultDueIn && !$ARGS{'Due'}) {

commit b288e14f6bbdb1bf16c8c46997c2319f70175dc3
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Fri Feb 24 12:27:49 2017 -0500

    Use DistributionToQueueRegex instead of perl-specific substitution
    
    Replace instances of the perl-module-specific substitution regex,
    s/::/-/g, with a substitution regex constructed from the new
    DistributionToQueueRegex config variable in RT::BugTracker.

diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index 72fc71b..55c3e7f 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -211,7 +211,8 @@ Other things that are often helpful:
 <%INIT>
 my $current_user = $session{'CurrentUser'};
 
-$Queue =~ s/::/-/g;
+my %NameRegex = RT->Config->Get("DistributionToQueueRegex");
+$Queue =~ s/$NameRegex{Pattern}/$NameRegex{Substitution}/g;
 
 my $QueueObj = RT::Queue->new($current_user);
 $QueueObj->Load($Queue);
diff --git a/html/Public/Dist/Display.html b/html/Public/Dist/Display.html
index d9fc932..ea5342e 100755
--- a/html/Public/Dist/Display.html
+++ b/html/Public/Dist/Display.html
@@ -67,7 +67,8 @@
 
 <%INIT>
 $Name = $Queue unless $Name;
-$Name =~ s/::/-/g;
+my %NameRegex = RT->Config->Get("DistributionToQueueRegex");
+$Name =~ s/$NameRegex{Pattern}/$NameRegex{Substitution}/g;
 my $QueueObj = RT::Queue->new( $session{CurrentUser} );
 $QueueObj->Load( $Name );
 unless ( $QueueObj->id ) {
diff --git a/html/Public/Dist/bugs.tsv b/html/Public/Dist/bugs.tsv
index e585f89..9f5d947 100755
--- a/html/Public/Dist/bugs.tsv
+++ b/html/Public/Dist/bugs.tsv
@@ -50,7 +50,8 @@
 % }
 % $m->abort();
 <%INIT>
-$Dist =~ s/::/-/g;
+my %NameRegex = RT->Config->Get("DistributionToQueueRegex");
+$Dist =~ s/$NameRegex{Pattern}/$NameRegex{Substitution}/g;
 
 $r->content_type('text/plain');
 
diff --git a/html/Public/index.html b/html/Public/index.html
index 006dd6f..2c81f2b 100755
--- a/html/Public/index.html
+++ b/html/Public/index.html
@@ -105,7 +105,8 @@ if ( defined $Maintainer && length $Maintainer ) {
 
 if ( defined $Distribution && length $Distribution ) {
     my $queue = RT::Queue->new( $session{'CurrentUser'} );
-    $Distribution =~ s/::/-/g;
+    my %NameRegex = RT->Config->Get("DistributionToQueueRegex");
+    $Distribution =~ s/$NameRegex{Pattern}/$NameRegex{Substitution}/g;
     $queue->Load( $Distribution );
     unless ( $queue->id ) {
         push @results, loc("No distribution '[_1]' in the system", $Distribution);

commit 56ba39e574c274398ce80e318adf8a089e25643c
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Thu Feb 23 15:13:32 2017 -0500

    Update deprecated templates and functions
    
    html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged:
    Use LifecycleObj instead of Lifecycle
    
    html/Public/Bug/Display.html:
    Use /Elements/ShowHistory instead of /Ticket/ElementsShowHistory
    Use $TicketObj->Attachments instead of /Ticket/Elements/FindAttachments
    Use $TicketObj->TextAttachments instead of /Ticket/Elements/LoadTextAttachments
    
    html/Public/Bug/Report.html:
    Use /Elements/EditCustomFields instead of /Ticket/Elements/EditCustomFields
    Use RT::QueueObj::DefaultValue('Due') in >4.2, RT::QueueObj::DefaultDueIn in <=4.2
    
    Pass "Timezone => 'user' to $default_due->ISO. Fixes latent bug in
    Default Due for calculation for 4.2 where Due was set to UTC instead
    of server local.

diff --git a/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged b/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
index 7fd8e02..bcb704d 100644
--- a/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
+++ b/html/Callbacks/BugTracker-Public/Elements/Tabs/Privileged
@@ -138,7 +138,7 @@ if ( $queue and $queue->id ) {
     );
 
     if ($ticket and $ticket->id
-        and $queue->Lifecycle->IsInactive($ticket->Status)
+        and $queue->LifecycleObj->IsInactive($ticket->Status)
         and $ticket->CurrentUserHasRight("OpenTicket")) {
 
         PageMenu->child(
diff --git a/html/Public/Bug/Display.html b/html/Public/Bug/Display.html
index 182d282..fc8e8d5 100755
--- a/html/Public/Bug/Display.html
+++ b/html/Public/Bug/Display.html
@@ -62,17 +62,13 @@
 
 % $m->callback(%ARGS, CallbackName => 'BeforeShowHistory', Ticket => $TicketObj);
 
-<& /Ticket/Elements/ShowHistory , 
-      Ticket => $TicketObj, 
-      Tickets => $Tickets, 
-      Collapsed => $ARGS{'Collapsed'}, 
+<& /Elements/ShowHistory ,
+      Object => $TicketObj,
+      Transactions => $TicketObj->Transactions,
       ShowHeaders => $ARGS{'ShowHeaders'},
       Attachments => $attachments,
-      AttachmentContent => $attachment_content,
-      URIFile     => RT->Config->Get('WebPath') . '/Public/Bug/Display.html',
-      DisplayPath => RT->Config->Get('WebPath') . '/Public/Bug/Display.html?id='. $TicketObj->id,
-      UpdatePath  => RT->Config->Get('WebPath') . '/Public/Bug/Update.html',
-&> 
+      AttachmentContent => $attachment_content
+&>
 
 <%ARGS>
 $id => undef
@@ -166,9 +162,8 @@ if (@Actions) {
 $m->callback(CallbackName => 'BeforeDisplay',
 	 TicketObj => \$TicketObj, Tickets => \$Tickets, ARGSRef => \%ARGS);
 
-
-my $attachments = $m->comp('/Ticket/Elements/FindAttachments', Ticket => $TicketObj, Tickets => $Tickets);
-my $attachment_content = $m->comp('/Ticket/Elements/LoadTextAttachments', Ticket => $TicketObj);
+my $attachments = $TicketObj->Attachments;
+my $attachment_content = $TicketObj->TextAttachments;
 
 my $title = loc(
     "Bug #[_1] for [_2]: [_3]",
diff --git a/html/Public/Bug/Report.html b/html/Public/Bug/Report.html
index 55c3e7f..535581a 100755
--- a/html/Public/Bug/Report.html
+++ b/html/Public/Bug/Report.html
@@ -235,11 +235,12 @@ my $ticket = RT::Ticket->new($current_user); # empty ticket object
 
 # if no due date has been set explicitly, then use the
 # queue's default if it exists
-if ($QueueObj->DefaultDueIn && !$ARGS{'Due'}) {
+if ($RT::MAJOR_VERSION <= 4 && $RT::MINOR_VERSION <= 2
+    && $QueueObj->DefaultDueIn && !$ARGS{'Due'}) {
     my $default_due = RT::Date->new($session{'CurrentUser'});
     $default_due->SetToNow();
     $default_due->AddDays($QueueObj->DefaultDueIn);
-    $ARGS{'Due'} = $default_due->ISO();
+    $ARGS{'Due'} = $default_due->ISO(Timezone => 'user');
 }
 
 # {{{ deal with deleting uploaded attachments

commit f5827dbb182ee182a595a230d968873acf211011
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Wed Mar 8 14:19:20 2017 -0500

    Add functionality and configuration documentation.
    
    Describe general RT::BugTracker::Public functionality.
    Correct and clarify existing WebPublicUser documentation.

diff --git a/lib/RT/BugTracker/Public.pm b/lib/RT/BugTracker/Public.pm
index 57ff637..9643e8b 100644
--- a/lib/RT/BugTracker/Public.pm
+++ b/lib/RT/BugTracker/Public.pm
@@ -60,7 +60,33 @@ RT->AddStyleSheets("bugtracker-public.css");
 
 =head1 NAME
 
-RT::BugTracker::Public - Adds a public, (hopefully) userfriendly bug tracking UI to RT
+RT::BugTracker::Public - Adds a public, user-friendly bug tracking and
+reporting UI to RT
+
+=head1 DESCRIPTION
+
+RT::BugTracker::Public depends on RT::BugTracker.
+
+RT::BugTracker::Public depends on RT::Authen::Bitcard and
+Authen::Bitcard for external authentication through Bitcard.
+
+NB: External authentication through Bitcard is broken in RT 4.2 and
+4.4. The authors may eventually deprecate this functionality.
+
+This extension adds a public interface for searching and reporting
+bugs through an RT with RT::BugTracker installed. The public reporting
+UI is disabled, by default.
+
+The public interface entrypoint is on the RT login page. Click the
+C<public interface> link to access the public bug search page. The
+public search functionality is identical to the private interface in
+RT::BugTracker.
+
+To enable public bug reporting, follow the documentation for
+C<WebPublicUserReporting>, in the C<CONFIGURATION> section, below. To
+report bugs, public users must create a new ticket using the C<New
+ticket in> button, or click C<Report a new bug> from the bug list page
+for a distribution.
 
 =head1 INSTALLATION
 
@@ -96,24 +122,29 @@ define options there.
 
 =head2 WebPublicUser
 
-Make sure to create the public user in your RT system and add the line below
-to your F<RT_SiteConfig.pm>.
+Create the public user in your RT system through F<Admin \> Users \>
+Create> in RT. The public user must be able to access RT, and it must
+be privileged so it can have rights. Do not enter an email address for
+the public user.
 
-    Set( $WebPublicUser, 'guest' );
+Add the line below to F<RT_SiteConfig.pm> and replace 'guest' with the
+name of the RT user you just created.
 
-If you didn't name your public user 'guest', then change accordingly.
+    Set( $WebPublicUser, 'guest' );
 
-The public user should probably be unprivileged and have the following rights
+The public user needs the following rights on public distribution
+queues to search bugs:
 
-    CreateTicket
-    ModifyCustomField
-    ReplyToTicket
     SeeCustomField
     SeeQueue
     ShowTicket
 
-If you want the public UI to do anything useful. It should NOT have the
-ModifySelf right.
+The pubic user needs the following rights on public distribution
+queues to report bugs:
+
+    CreateTicket
+    ModifyCustomField
+    ReplyToTicket
 
 =head2 WebPublicUserReporting
 

commit 54fb914ce75f2e26e4ad419ccf2be9e1fc7f4440
Author: Brian C. Duggan <brian at bestpractical.com>
Date:   Tue Feb 28 15:19:34 2017 -0500

    Update distribution files
    
    Update distribution files without signing

diff --git a/Changes b/Changes
index 3387741..bec7942 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+1.06 2017-02-28
+ - RT 4.2 and 4.4 compatibility
+ - Drop 4.0 compatibility
+
 1.05 2016-07-19
  - Packaging updates
  - Whitelist all query endpoints from CSRF protection
diff --git a/MANIFEST b/MANIFEST
index 40c120d..8539a23 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -10,8 +10,6 @@ html/Callbacks/BugTracker-Public/NoAuth/Logout.html/Default
 html/Callbacks/BugTracker-Public/Search/Results.html/Initial
 html/Callbacks/BugTracker-Public/Ticket/Elements/ShowMessageHeaders/Default
 html/Elements/ShowUserPublic
-html/NoAuth/css/bugtracker-public.css
-html/NoAuth/js/bugtracker-public.js
 html/Public/autohandler
 html/Public/Browse.html
 html/Public/Bug/Display.html
@@ -50,3 +48,5 @@ Makefile.PL
 MANIFEST			This list of files
 META.yml
 README
+static/css/bugtracker-public.css
+static/js/bugtracker-public.js
diff --git a/META.yml b/META.yml
index dd4d8c7..e6d3212 100644
--- a/META.yml
+++ b/META.yml
@@ -1,5 +1,5 @@
 ---
-abstract: 'Adds a public, (hopefully) userfriendly bug tracking UI to RT'
+abstract: 'Adds a public, user-friendly bug tracking and reporting UI to RT'
 author:
   - 'Best Practical Solutions, LLC <modules at bestpractical.com>'
 build_requires:
@@ -8,7 +8,7 @@ configure_requires:
   ExtUtils::MakeMaker: 6.59
 distribution_type: module
 dynamic_config: 1
-generated_by: 'Module::Install version 1.16'
+generated_by: 'Module::Install version 1.17'
 license: gpl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,11 +19,12 @@ no_index:
     - etc
     - html
     - inc
+    - static
 requires:
-  perl: 5.8.3
+  perl: 5.10.1
 resources:
   license: http://opensource.org/licenses/gpl-license.php
-version: '1.05'
+version: '1.06'
 x_module_install_rtx_version: '0.38'
-x_requires_rt: 4.0.0
-x_rt_too_new: 4.2.0
+x_requires_rt: 4.2.0
+x_rt_too_new: 4.6.0
diff --git a/README b/README
index 8437711..755a974 100644
--- a/README
+++ b/README
@@ -1,6 +1,30 @@
 NAME
-    RT::BugTracker::Public - Adds a public, (hopefully) userfriendly bug
-    tracking UI to RT
+    RT::BugTracker::Public - Adds a public, user-friendly bug tracking and
+    reporting UI to RT
+
+DESCRIPTION
+    RT::BugTracker::Public depends on RT::BugTracker.
+
+    RT::BugTracker::Public depends on RT::Authen::Bitcard and
+    Authen::Bitcard for external authentication through Bitcard.
+
+    NB: External authentication through Bitcard is broken in RT 4.2 and 4.4.
+    The authors may eventually deprecate this functionality.
+
+    This extension adds a public interface for searching and reporting bugs
+    through an RT with RT::BugTracker installed. The public reporting UI is
+    disabled, by default.
+
+    The public interface entrypoint is on the RT login page. Click the
+    public interface link to access the public bug search page. The public
+    search functionality is identical to the private interface in
+    RT::BugTracker.
+
+    To enable public bug reporting, follow the documentation for
+    WebPublicUserReporting, in the CONFIGURATION section, below. To report
+    bugs, public users must create a new ticket using the New ticket in
+    button, or click Report a new bug from the bug list page for a
+    distribution.
 
 INSTALLATION
     perl Makefile.PL
@@ -11,9 +35,7 @@ INSTALLATION
     Edit your /opt/rt4/etc/RT_SiteConfig.pm
         Add this line:
 
-            Set(@Plugins, qw(RT::BugTracker::Public));
-
-        or add RT::BugTracker::Public to your existing @Plugins line.
+            Plugin('RT::BugTracker::Public');
 
     Clear your mason cache
             rm -rf /opt/rt4/var/mason_data/obj
@@ -26,25 +48,35 @@ CONFIGURATION
     RT_SiteConfig.pm or define options there.
 
   WebPublicUser
-    Make sure to create the public user in your RT system and add the line
-    below to your RT_SiteConfig.pm.
+    Create the public user in your RT system through Admin \ Users \>
+    Create> in RT. The public user must be able to access RT, and it must be
+    privileged so it can have rights. Do not enter an email address for the
+    public user.
+
+    Add the line below to RT_SiteConfig.pm and replace 'guest' with the name
+    of the RT user you just created.
 
         Set( $WebPublicUser, 'guest' );
 
-    If you didn't name your public user 'guest', then change accordingly.
+    The public user needs the following rights on public distribution queues
+    to search bugs:
 
-    The public user should probably be unprivileged and have the following
-    rights
+        SeeCustomField
+        SeeQueue
+        ShowTicket
+
+    The pubic user needs the following rights on public distribution queues
+    to report bugs:
 
         CreateTicket
         ModifyCustomField
         ReplyToTicket
-        SeeCustomField
-        SeeQueue
-        ShowTicket
 
-    If you want the public UI to do anything useful. It should NOT have the
-    ModifySelf right.
+  WebPublicUserReporting
+    By default, the web public user cannot create bug reports through the
+    web UI. To allow this, add this line:
+
+        Set($WebPublicUserReporting, 1);
 
 AUTHOR
     Best Practical Solutions, LLC <modules at bestpractical.com>
@@ -59,7 +91,7 @@ BUGS
         L<rt.cpan.org|http://rt.cpan.org/Public/Dist/Display.html?Name=RT-BugTracker-Public>.
 
 LICENSE AND COPYRIGHT
-    This software is Copyright (c) 2014 by Best Practical Solutions
+    This software is Copyright (c) 2017 by Best Practical Solutions
 
     This is free software, licensed under:
 
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index f44ab4d..dbe10ca 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -31,7 +31,7 @@ BEGIN {
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -244,6 +244,8 @@ sub new {
 	}
 	return $args{_self} if $args{_self};
 
+	$base_path = VMS::Filespec::unixify($base_path) if $^O eq 'VMS';
+
 	$args{dispatch} ||= 'Admin';
 	$args{prefix}   ||= 'inc';
 	$args{author}   ||= ($^O eq 'VMS' ? '_author' : '.author');
@@ -322,7 +324,7 @@ sub find_extensions {
 	my ($self, $path) = @_;
 
 	my @found;
-	File::Find::find( sub {
+	File::Find::find( {no_chdir => 1, wanted => sub {
 		my $file = $File::Find::name;
 		return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is;
 		my $subpath = $1;
@@ -336,7 +338,7 @@ sub find_extensions {
 		# correctly.  Otherwise, root through the file to locate the case-preserved
 		# version of the package name.
 		if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) {
-			my $content = Module::Install::_read($subpath . '.pm');
+			my $content = Module::Install::_read($File::Find::name);
 			my $in_pod  = 0;
 			foreach ( split /\n/, $content ) {
 				$in_pod = 1 if /^=\w/;
@@ -351,7 +353,7 @@ sub find_extensions {
 		}
 
 		push @found, [ $file, $pkg ];
-	}, $path ) if -d $path;
+	}}, $path ) if -d $path;
 
 	@found;
 }
@@ -373,8 +375,6 @@ sub _caller {
 	return $call;
 }
 
-# Done in evals to avoid confusing Perl::MinimumVersion
-eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
 sub _read {
 	local *FH;
 	open( FH, '<', $_[0] ) or die "open($_[0]): $!";
@@ -383,16 +383,6 @@ sub _read {
 	close FH or die "close($_[0]): $!";
 	return $string;
 }
-END_NEW
-sub _read {
-	local *FH;
-	open( FH, "< $_[0]"  ) or die "open($_[0]): $!";
-	binmode FH;
-	my $string = do { local $/; <FH> };
-	close FH or die "close($_[0]): $!";
-	return $string;
-}
-END_OLD
 
 sub _readperl {
 	my $string = Module::Install::_read($_[0]);
@@ -413,8 +403,6 @@ sub _readpod {
 	return $string;
 }
 
-# Done in evals to avoid confusing Perl::MinimumVersion
-eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
 sub _write {
 	local *FH;
 	open( FH, '>', $_[0] ) or die "open($_[0]): $!";
@@ -424,17 +412,6 @@ sub _write {
 	}
 	close FH or die "close($_[0]): $!";
 }
-END_NEW
-sub _write {
-	local *FH;
-	open( FH, "> $_[0]"  ) or die "open($_[0]): $!";
-	binmode FH;
-	foreach ( 1 .. $#_ ) {
-		print FH $_[$_] or die "print($_[0]): $!";
-	}
-	close FH or die "close($_[0]): $!";
-}
-END_OLD
 
 # _version is for processing module versions (eg, 1.03_05) not
 # Perl versions (eg, 5.8.1).
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index 5762a74..3d89918 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 }
 
 # Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index d859276..fc699b3 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -8,7 +8,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -121,6 +121,15 @@ END_C
 # Can we locate a (the) C compiler
 sub can_cc {
 	my $self   = shift;
+
+	if ($^O eq 'VMS') {
+		require ExtUtils::CBuilder;
+		my $builder = ExtUtils::CBuilder->new(
+		quiet => 1,
+		);
+		return $builder->have_compiler;
+	}
+
 	my @chunks = split(/ /, $Config::Config{cc}) or return;
 
 	# $Config{cc} may contain args; try to find out the program part
@@ -151,4 +160,4 @@ if ( $^O eq 'cygwin' ) {
 
 __END__
 
-#line 236
+#line 245
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index 41d3517..3ee0aa1 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index 2eb1d1f..e8a73b8 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index e9918d2..bc81e06 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index 9792685..29934cf 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index 218a66b..dba25f9 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index 530749b..d553bd7 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.16';
+	$VERSION = '1.17';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }
diff --git a/inc/YAML/Tiny.pm b/inc/YAML/Tiny.pm
index aa539f7..4fd023d 100644
--- a/inc/YAML/Tiny.pm
+++ b/inc/YAML/Tiny.pm
@@ -2,12 +2,12 @@
 use 5.008001; # sane UTF-8 support
 use strict;
 use warnings;
-package YAML::Tiny; # git description: v1.68-2-gcc5324e
+package YAML::Tiny; # git description: v1.69-8-g2c1e266
 # XXX-INGY is 5.8.1 too old/broken for utf8?
 # XXX-XDG Lancaster consensus was that it was sufficient until
 # proven otherwise
 
-our $VERSION = '1.69';
+our $VERSION = '1.70';
 
 #####################################################################
 # The YAML::Tiny API.
@@ -570,10 +570,8 @@ sub _dump_file {
     if ( _can_flock() ) {
         # Open without truncation (truncate comes after lock)
         my $flags = Fcntl::O_WRONLY()|Fcntl::O_CREAT();
-        sysopen( $fh, $file, $flags );
-        unless ( $fh ) {
-            $self->_error("Failed to open file '$file' for writing: $!");
-        }
+        sysopen( $fh, $file, $flags )
+            or $self->_error("Failed to open file '$file' for writing: $!");
 
         # Use no translation and strict UTF-8
         binmode( $fh, ":raw:encoding(UTF-8)");
@@ -871,4 +869,4 @@ delete $YAML::Tiny::{refaddr};
 
 __END__
 
-#line 1489
+#line 1487
diff --git a/lib/RT/BugTracker/Public.pm b/lib/RT/BugTracker/Public.pm
index 9643e8b..2c6af37 100644
--- a/lib/RT/BugTracker/Public.pm
+++ b/lib/RT/BugTracker/Public.pm
@@ -53,7 +53,7 @@ use warnings;
 package RT::BugTracker::Public;
 use URI::Escape qw/ uri_escape /;
 
-our $VERSION = '1.05';
+our $VERSION = '1.06';
 
 RT->AddJavaScript("bugtracker-public.js");
 RT->AddStyleSheets("bugtracker-public.css");

-----------------------------------------------------------------------


More information about the Bps-public-commit mailing list