Safe auth token activity logging
authorBill Erickson <berick@esilibrary.com>
Mon, 19 Aug 2013 13:24:17 +0000 (09:24 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Thu, 6 Nov 2014 17:53:55 +0000 (12:53 -0500)
Expand safe token generation to include user user ID in the cached data,
which can be retrieved later for activity logging.  Add activity logging
directly to the open-ils.actor.safe_token.home_lib.shortname API.

Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm

index be97787..442c124 100644 (file)
@@ -2824,12 +2824,13 @@ sub session_safe_token {
 
     $cache ||= OpenSRF::Utils::Cache->new("global", 0);
 
-    # Add more like the following if needed...
+    # add more user fields as needed
     $cache->put_cache(
-        "safe-token-home_lib-shortname-$safe_token",
-        $e->retrieve_actor_org_unit(
-            $e->requestor->home_ou
-        )->shortname,
+        "safe-token-user-$safe_token", {   
+            id => $e->requestor->id, 
+            home_ou_shortname => $e->retrieve_actor_org_unit(
+                $e->requestor->home_ou)->shortname,
+        },
         60 * 60
     );
 
@@ -2849,10 +2850,14 @@ __PACKAGE__->register_method(
 );
 
 sub safe_token_home_lib {
-    my( $self, $conn, $safe_token ) = @_;
-
+    my( $self, $conn, $safe_token, $who ) = @_;
     $cache ||= OpenSRF::Utils::Cache->new("global", 0);
-    return $cache->get_cache( 'safe-token-home_lib-shortname-'. $safe_token );
+
+    my $blob = $cache->get_cache("safe-token-user-$safe_token");
+    return unless $blob;
+
+    $U->log_user_activity($blob->{id}, $who, 'verify');
+    return $blob->{home_ou_shortname};
 }