Bug 5336: (follow-up) remove unused new parameter to NewOrder() that slipped in
[koha.git] / C4 / Auth_with_cas.pm
index b096232..46cb1ec 100644 (file)
@@ -22,7 +22,6 @@ use warnings;
 
 use C4::Debug;
 use C4::Context;
-use C4::Utils qw( :all );
 use Authen::CAS::Client;
 use CGI;
 use FindBin;
@@ -32,7 +31,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $debug);
 
 BEGIN {
        require Exporter;
-       $VERSION = 3.03;        # set the version for version checking
+    $VERSION = 3.07.00.049;    # set the version for version checking
        $debug = $ENV{DEBUG};
        @ISA    = qw(Exporter);
        @EXPORT = qw(check_api_auth_cas checkpw_cas login_cas logout_cas login_cas_url);
@@ -66,7 +65,7 @@ sub getMultipleAuth {
 # Logout from CAS
 sub logout_cas {
     my ($query) = @_;
-    my $uri = $ENV{'SCRIPT_URI'};
+    my $uri = C4::Context->preference('OPACBaseURL') . $query->script_name();
     my $casparam = $query->param('cas');
     # FIXME: This should be more generic and handle whatever parameters there might be
     $uri .= "?cas=" . $casparam if (defined $casparam);
@@ -78,7 +77,7 @@ sub logout_cas {
 # Login to CAS
 sub login_cas {
     my ($query) = @_;
-    my $uri = $ENV{'SCRIPT_URI'};
+    my $uri = C4::Context->preference('OPACBaseURL') . $query->script_name();
     my $casparam = $query->param('cas');
     # FIXME: This should be more generic and handle whatever parameters there might be
     $uri .= "?cas=" . $casparam if (defined $casparam);
@@ -91,10 +90,8 @@ sub login_cas {
 sub login_cas_url {
 
     my ($query, $key) = @_;
-    my $uri = $ENV{'SCRIPT_URI'};
+    my $uri = C4::Context->preference('OPACBaseURL') . $query->url( -absolute => 1, -query => 1 );
     my $casparam = $query->param('cas');
-    # FIXME: This should be more generic and handle whatever parameters there might be
-    $uri .= "?cas=" . $casparam if (defined $casparam);
     $casparam = $defaultcasserver if (not defined $casparam);
     $casparam = $key if (defined $key);
     my $cas = Authen::CAS::Client->new($casservers->{$casparam});
@@ -107,7 +104,7 @@ sub checkpw_cas {
     $debug and warn "checkpw_cas";
     my ($dbh, $ticket, $query) = @_;
     my $retnumber;
-    my $uri = $ENV{'SCRIPT_URI'};
+    my $uri = C4::Context->preference('OPACBaseURL') . $query->script_name();
     my $casparam = $query->param('cas');
     # FIXME: This should be more generic and handle whatever parameters there might be
     $uri .= "?cas=" . $casparam if (defined $casparam);
@@ -145,7 +142,10 @@ sub checkpw_cas {
             $debug and warn "User $userid is not a valid Koha user";
 
         } else {
-            $debug and warn "Invalid session ticket : $ticket";
+            $debug and warn "Problem when validating ticket : $ticket";
+            $debug and warn "Authen::CAS::Client::Response::Error: " . $val->error() if $val->is_error();
+            $debug and warn "Authen::CAS::Client::Response::Failure: " . $val->message() if $val->is_failure();
+            $debug and warn Data::Dumper::Dumper($@) if $val->is_error() or $val->is_failure();
             return 0;
         }
     }
@@ -157,7 +157,7 @@ sub check_api_auth_cas {
     $debug and warn "check_api_auth_cas";
     my ($dbh, $PT, $query) = @_;
     my $retnumber;
-    my $url = $query->url();
+    my $url = C4::Context->preference('OPACBaseURL') . $query->script_name();
 
     my $casparam = $query->param('cas');
     $casparam = $defaultcasserver if (not defined $casparam);