Bug 16805: Log in with database admin user breaks OPAC
authorMark Tompsett <mtompset@hotmail.com>
Thu, 23 Jun 2016 18:51:26 +0000 (14:51 -0400)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 8 Jul 2016 14:45:04 +0000 (14:45 +0000)
TEST PLAN
---------
1) Apply Jonathan's test patch
2) prove t/db_dependent/Letters.t
   -- dies before finishing tests
3) Apply second test patch
4) prove t/db_dependent/Letters.t
   -- dies before finishing tests
   -- 'addalert' is changed to 'getalert'
5) Log into OPAC with database admin user.
   -- see error given in comment #0
6) Apply this patch
7) prove t/db_dependent/Letters.t
   -- says 'getalert'
   -- all tests pass.
8) Log into OPAC with database admin user.
   -- logs in, but gives warning with a nice logout button.
9) run koha qa test tools.

Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
No kaha qa errors
In debian display diferent error:
Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/DBI.pm line 2054.
Works as advertised

NOTE: Revised test plan, as Jonathan added useful test case.
      Works as I've tested above.
      Hector tested older test plan which was steps
      5,6,8 and 9.

      Revised test plan again while tweaking to address comment #9.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/Letters.pm
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt
opac/opac-user.pl

index a25aaf2..737c8cd 100644 (file)
@@ -314,21 +314,20 @@ sub delalert {
 sub getalert {
     my ( $borrowernumber, $type, $externalid ) = @_;
     my $dbh   = C4::Context->dbh;
-    my $query = "SELECT a.*, b.branchcode FROM alert a JOIN borrowers b USING(borrowernumber) WHERE";
+    my $query = "SELECT a.*, b.branchcode FROM alert a JOIN borrowers b USING(borrowernumber) WHERE 1";
     my @bind;
     if ($borrowernumber and $borrowernumber =~ /^\d+$/) {
-        $query .= " borrowernumber=? AND ";
+        $query .= " AND borrowernumber=?";
         push @bind, $borrowernumber;
     }
     if ($type) {
-        $query .= " type=? AND ";
+        $query .= " AND type=?";
         push @bind, $type;
     }
     if ($externalid) {
-        $query .= " externalid=? AND ";
+        $query .= " AND externalid=?";
         push @bind, $externalid;
     }
-    $query =~ s/ AND $//;
     my $sth = $dbh->prepare($query);
     $sth->execute(@bind);
     return $sth->fetchall_arrayref({});
index 675bc33..af02508 100644 (file)
             </div>
             <div class="span10">
                 <div id="userdetails" class="maincontent">
+
+                    [% IF adminWarning %]
+                        <div id="adminwarning" class="dialog alert">
+                            <p>
+<strong><i class="fa fa-exclamation-triangle"> </i> Warning:</strong>
+Using this account is not recommended because some parts of Koha will not function as expected. Instead, please log in with a different account.
+<a class="btn btn-small" href="/cgi-bin/koha/opac-main.pl?logout.x=1">
+<i class="fa fa-sign-out"> </i> Log out</a>
+                            </p>
+                        </div>
+                    [% END %]
+
                     [% IF ( bor_messages ) %]
                         <div class="alert alert-info">
                             <h3>Messages for you</h3>
index 413c26d..a23a032 100755 (executable)
@@ -80,6 +80,10 @@ my $canrenew = 1;
 
 $template->param( shibbolethAuthentication => C4::Context->config('useshibboleth') );
 
+if (!$borrowernumber) {
+    $template->param( adminWarning => 1 );
+}
+
 # get borrower information ....
 my ( $borr ) = GetMemberDetails( $borrowernumber );