Prevent odd TPAC base URL redirect
authorDan Wells <dbw2@calvin.edu>
Fri, 9 Nov 2012 21:12:58 +0000 (16:12 -0500)
committerBill Erickson <berick@esilibrary.com>
Thu, 13 Feb 2014 22:06:58 +0000 (17:06 -0500)
As it stands, in a default install, if you browse to

http://yourserver.com/eg/opac

you are redirected to a login page, and if you login, you then get
to the 404 page. This behavior is caused by the fact that *any*
URLs which do not match a few select cases are assumed to be
"secure" resources, when in fact they might not even exist.

This commit catches any attempt to browse this 'base' and simply
redirects to the "home" page instead.

This addresses the most obvious and likely 404 of this type, but
we might consider catching some other cases (e.g. eg/opac/record/).
In addition (or as an alternative), we could also create a function
call which simply checks the validity of a URL before we ask the
user to login to see it.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm

index e5ceb0f..7fe805b 100644 (file)
@@ -114,6 +114,11 @@ sub load {
 
     my $path = $self->apache->path_info;
 
+    if ($path =~ m|opac/?$|) {
+        # nowhere specified, just go home
+        return $self->generic_redirect($self->ctx->{home_page});
+    }
+
     (undef, $self->ctx->{mylist}) = $self->fetch_mylist unless
         $path =~ /opac\/my(opac\/lists|list)/;