summaryrefslogtreecommitdiff
path: root/sql/modules/Session.sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql/modules/Session.sql')
-rw-r--r--sql/modules/Session.sql21
1 files changed, 21 insertions, 0 deletions
diff --git a/sql/modules/Session.sql b/sql/modules/Session.sql
index 158c8c2e..9dcf378f 100644
--- a/sql/modules/Session.sql
+++ b/sql/modules/Session.sql
@@ -72,3 +72,24 @@ $$ LANGUAGE PLPGSQL;
COMMENT ON FUNCTION session_check(int, text) IS
$$ Return code is 0 for failure, 1 for success. $$;
+
+CREATE OR REPLACE FUNCTION unlock_all() RETURNS BOOL AS
+$$
+BEGIN
+ UPDATE transactions SET locked_by = NULL
+ where locked_by IN
+ (select session_id from session WHERE users_id =
+ (SELECT id FROM users WHERE username = SESSION_USER));
+
+ RETURN FOUND;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION unlock(in_id int) RETURNS BOOL AS $$
+BEGIN
+ UPDATE transactions SET locked_by = NULL WHERE id = in_id
+ AND locked_by IN (SELECT session_id FROM session WHERE users_id =
+ (SELECT id FROM users WHERE username = SESSION_USER));
+ RETURN FOUND;
+END;
+$$ LANGUAGE PLPGSQL;