Bug 18118: Unexpected behaviour with 'GoogleOpenIDConnect' and 'OpacPublic' syspref...
authorMason James <mtj@kohaaloha.com>
Thu, 1 Dec 2016 00:38:51 +0000 (13:38 +1300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 27 Oct 2017 17:09:02 +0000 (14:09 -0300)
TEST PLAN
----------
1/ configure a working 'GoogleOpenIDConnect' account

See comment #5 which also links back to
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16892#c3

2/ set 'OpacPublic' (under OPAC) to 'Disabled' and
   'GoogleOpenIDConnect' (under Administration) to 'Yes'.

3/ log in user successfully via google-auth, observe redirect to
   opac-user.pl (bad)

4/ apply patch
   -- on kohadevbox remember to restart all! Plack is unforgiving. :)

5/ log in user successfully via google-auth, observe expected
   redirect to opac-main.pl (good)

While I would normally suggest running koha qa test tools, because
this file doesn't end in .pl, it doesn't get picked up by them.

6/ perlcritic -4 opac/svc/auth/googleopenidconnect
   -- notice this is a level better than required. :)

This also eyeballs easily well.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
opac/svc/auth/googleopenidconnect

index d417d7a..e3d7df4 100755 (executable)
@@ -216,8 +216,16 @@ elsif ( defined $query->param('code') ) {
                 my ( $userid, $cookie, $session_id ) =
                   checkauth( $query, 1, {}, 'opac', $email );
                 if ($userid) {    # A user with this email is registered in koha
+
+                    #handle redirect to main.pl, for private opac
+                    my $uri;
+                    if (C4::Context->preference('OpacPublic') ) {
+                        $uri    =  '/cgi-bin/koha/opac-user.pl';
+                    } else {
+                        $uri    =  '/cgi-bin/koha/opac-main.pl';
+                    }
                     print $query->redirect(
-                        -uri    => '/cgi-bin/koha/opac-user.pl',
+                        -uri    => $uri,
                         -cookie => $cookie
                     );
                 }