diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-09-18 18:38:09 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-09-18 18:38:09 +0000 |
commit | 8fc6c2094bfd5964c3c875c58407ed5f8820e90b (patch) | |
tree | 93a8d2b248ed15a7dff50a6f489f78893d203384 /sql/modules/Session.sql | |
parent | 9e2e27bda4a44c0303cea5bc774d566e2e9f40df (diff) |
Adding unit tests to Session.sql and correcting logic that causes it to fail.
Adding a 90 min timeout to the sessions by default
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2328 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'sql/modules/Session.sql')
-rw-r--r-- | sql/modules/Session.sql | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/modules/Session.sql b/sql/modules/Session.sql index e0547c22..158c8c2e 100644 --- a/sql/modules/Session.sql +++ b/sql/modules/Session.sql @@ -30,6 +30,10 @@ RETURNS session AS $$ DECLARE out_row session%ROWTYPE; BEGIN + DELETE FROM session + WHERE last_used < now() - coalesce((SELECT value FROM defaults + WHERE setting_key = 'timeout')::interval, + '90 minutes'::interval); UPDATE session SET last_used = now() WHERE session_id = in_session_id @@ -39,7 +43,7 @@ BEGIN AND users_id = (select id from users where username = SESSION_USER); IF FOUND THEN - SELECT * INTO out_row WHERE session_id = in_session_id; + SELECT * INTO out_row FROM session WHERE session_id = in_session_id; ELSE DELETE FROM SESSION WHERE users_id IN (select id from users |