From 76501993ac7039f3a9b4265e15b63e34f41a6c29 Mon Sep 17 00:00:00 2001 From: Maciej Pasternacki Date: Thu, 18 Dec 2008 01:50:37 +0100 Subject: [PATCH] - customizable passenger activation ticket timeout. --- doc/TRANE-PASSENGERS.html | 5 ++++- src/passengers.lisp | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/TRANE-PASSENGERS.html b/doc/TRANE-PASSENGERS.html index c7e36f6..6853db9 100644 --- a/doc/TRANE-PASSENGERS.html +++ b/doc/TRANE-PASSENGERS.html @@ -5,9 +5,12 @@ Thin wrapper on CONFIRM-ACTIVATION-TICKET, returns passenger DAO instead of numerical ID, and signals UNAUTHORIZED-ERROR on invalid -TICKET.

(confirm-activation-ticket class ticket &optional activation-info)   function

+TICKET.

(confirm-activation-ticket class ticket &key activation-info ticket-timeout)   function

Confirm activation ticket TICKET for passenger class CLASS. +ACTIVATION-INFO is additional information stored in the database. +TICKET-TIMEOUT is number of days, after which activation ticket becomes invalid. + Returns valiated user ID (integer), or NIL if ticket is invalid (i.e. nonexistent, already used, or more than 5 days old).

(cookie-passenger cookie class)   function

Authorize passenger of CLASS, based on authentication cookie COOKIE.

(create-activation-ticket passenger &optional count)   function

diff --git a/src/passengers.lisp b/src/passengers.lisp index 88a99a2..3bac513 100644 --- a/src/passengers.lisp +++ b/src/passengers.lisp @@ -116,9 +116,12 @@ Returns ticket's passenger ID (integer), or NIL." (:- (:now) (:raw "interval '5 days'"))))) :single)) -(defun confirm-activation-ticket (class ticket &optional activation-info) +(defun confirm-activation-ticket (class ticket &key activation-info (ticket-timeout 62)) "Confirm activation ticket TICKET for passenger class CLASS. +ACTIVATION-INFO is additional information stored in the database. +TICKET-TIMEOUT is number of days, after which activation ticket becomes invalid. + Returns valiated user ID (integer), or NIL if ticket is invalid (i.e. nonexistent, already used, or more than 5 days old)." (let ((uid (query (:update (:raw (passenger-class-activation-table class)) @@ -126,7 +129,7 @@ invalid (i.e. nonexistent, already used, or more than 5 days old)." :where (:and (:is-null 'used) (:= ticket 'ticket) (:> 'timestamp - (:- (:now) (:raw "interval '5 days'")))) + (:- (:now) (:raw (format nil "interval '~D days'" ticket-timeout))))) :returning 'passenger-id) (format nil "~A GMT: ~A" (simple-date:universal-time-to-timestamp -- 2.11.4.GIT