X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fhtml%2Fautohandler;h=c854c2b337ec9d598513d97580a50790e30d0a2c;hp=9f93eb0545d16df39480ad285a514a2dfab5abeb;hb=673b9a458d9138523026963df6fa3b4683e09bae;hpb=5fc8c5edf574ab024d4646914b6432d458e2ffbd diff --git a/rt/html/autohandler b/rt/html/autohandler index 9f93eb054..c854c2b33 100644 --- a/rt/html/autohandler +++ b/rt/html/autohandler @@ -1,8 +1,14 @@ -%# BEGIN LICENSE BLOCK +%# BEGIN BPS TAGGED BLOCK {{{ %# -%# Copyright (c) 1996-2003 Jesse Vincent +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# %# -%# (Except where explictly superceded by other copyright notices) +%# (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 @@ -14,13 +20,29 @@ %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. +%# 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., 675 Mass Ave, Cambridge, MA 02139, USA. +%# +%# +%# 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 LICENSE BLOCK +%# END BPS TAGGED BLOCK }}} <%INIT> # Roll back any dangling transactions from a previous failed connection @@ -39,21 +61,15 @@ if ($m->request_comp->attr_exists('AutoFlush')) { # passed just one, a scalar whatever they are, mark them as utf8 my $type = ref($_); (!$type) - ? Encode::decode(utf8 => $_, Encode::FB_PERLQQ) : + ? Encode::is_utf8($_) ? $_ : Encode::decode(utf8 => $_, Encode::FB_PERLQQ) : ($type eq 'ARRAY') - ? [ map { ref($_) ? $_ : Encode::decode(utf8 => $_, Encode::FB_PERLQQ) } @$_ ] : + ? [ map { (ref($_) or Encode::is_utf8($_)) ? $_ : Encode::decode(utf8 => $_, Encode::FB_PERLQQ) } @$_ ] : ($type eq 'HASH') - ? { map { ref($_) ? $_ : Encode::decode(utf8 => $_, Encode::FB_PERLQQ) } %$_ } : $_ + ? { map { (ref($_) or Encode::is_utf8($_)) ? $_ : Encode::decode(utf8 => $_, Encode::FB_PERLQQ) } %$_ } : $_ } %ARGS; -if ($ARGS{'Debug'}) { - require Time::HiRes; - $m->{'rt_base_time'} = [Time::HiRes::gettimeofday()]; +$m->{'rt_base_time'} = [Time::HiRes::gettimeofday()]; -} -else { - $m->{'rt_base_time'} = time; -} $m->comp('/Elements/SetupSessionCookie', %ARGS); unless ($session{'CurrentUser'} && $session{'CurrentUser'}->Id) { @@ -64,8 +80,7 @@ unless ($session{'CurrentUser'} && $session{'CurrentUser'}->Id) { $r->content_type("text/html; charset=utf-8"); # If it's a noauth file, don't ask for auth. -if ($m->base_comp->path =~ '^/+NoAuth/' || - $m->base_comp->path =~ '^/+REST/\d+\.\d+/NoAuth/') +if ($m->base_comp->path =~ $RT::WebNoAuthRegex ) { $m->call_next(%ARGS); $m->abort(); @@ -93,7 +108,7 @@ elsif ( $RT::WebExternalAuth ) { if ($RT::WebExternalAuto and !$session{'CurrentUser'}->Id() ) { # Create users on-the-fly - my $UserObj = RT::User->new(RT::CurrentUser->new('root')); + my $UserObj = RT::User->new(RT::CurrentUser->new('RT_System')); my ($val, $msg) = $UserObj->Create( %{ref($RT::AutoCreate) ? $RT::AutoCreate : {}}, @@ -148,7 +163,7 @@ elsif ( $RT::WebExternalAuth ) { elsif ($RT::WebFallbackToInternalAuth) { unless (defined($session{'CurrentUser'})) { $m->comp('/Elements/Login', %ARGS, - Error=> loc('XXX CHANGEME You are not an authorized user')); + Error=> loc('You are not an authorized user')); $m->abort(); } } else { @@ -172,8 +187,8 @@ if (!$session{'CurrentUser'} && defined ($user) && defined ($pass) ){ if (!$session{'CurrentUser'}->id() || !$session{'CurrentUser'}->IsPassword($pass)) { - $RT::Logger->error("FAILED LOGIN for $user from $ENV{'REMOTE_ADDR'}"); delete $session{'CurrentUser'}; + $RT::Logger->error("FAILED LOGIN for $user from $ENV{'REMOTE_ADDR'}"); $m->comp('/Elements/Login', %ARGS, Error => loc('Your username or password is incorrect')); $m->abort();