-- Deploy camper:logout to pg -- requires: roles -- requires: schema_auth -- requires: schema_camper -- requires: current_user_email -- requires: current_user_cookie -- requires: user begin; set search_path to camper, auth, public; create or replace function logout() returns void as $$ update "user" set cookie = default , cookie_expires_at = default where email = current_user_email() and cookie = current_user_cookie() and cookie_expires_at > current_timestamp and length(cookie) > 30 $$ language sql security definer set search_path to auth, camper, pg_temp; comment on function logout() is 'Removes the cookie and its expiry data from the current user, as returned by current_user_email and current_user_cookie'; revoke execute on function logout() from public; grant execute on function logout() to employee; grant execute on function logout() to admin; commit;