From c70d797028288c3a6d936479a927fccf45689bf6 Mon Sep 17 00:00:00 2001
From: erickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Wed, 30 Dec 2009 20:37:57 +0000
Subject: [PATCH] during checkout.full, bypass the caching (and retrieval of)
 the permit key, since permit and checkout occur in the same process

git-svn-id: svn://svn.open-ils.org/ILS/trunk@15253 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
index 32d60263f3..345556e79f 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
@@ -296,6 +296,7 @@ sub run_method {
 
         # requesting a precat checkout implies that any required
         # overrides have been performed.  Go ahead and re-override.
+        $circulator->skip_permit_key(1);
         $circulator->override(1) if $circulator->request_precat;
         $circulator->do_permit();
         $circulator->is_checkout(1);
@@ -523,6 +524,7 @@ my @AUTOLOAD_FIELDS = qw/
     parent_circ
     return_patron
     claims_never_checked_out
+    skip_permit_key
 /;
 
 
@@ -611,6 +613,7 @@ sub push_events {
 
 sub mk_permit_key {
     my $self = shift;
+    return '' if $self->skip_permit_key;
     my $key = md5_hex( time() . rand() . "$$" );
     $self->cache_handle->put_cache( "oils_permit_key_$key", 1, 300 );
     return $self->permit_key($key);
@@ -618,6 +621,7 @@ sub mk_permit_key {
 
 sub check_permit_key {
     my $self = shift;
+    return 1 if $self->skip_permit_key;
     my $key = $self->permit_key;
     return 0 unless $key;
     my $k = "oils_permit_key_$key";
-- 
2.11.0