-- Deploy tipus:logout to pg -- requires: roles -- requires: schema_tipus -- requires: schema_auth -- requires: user -- requires: current_user_cookie -- requires: current_user_email begin; set search_path to tipus, 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, tipus, 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 publisher; grant execute on function logout() to admin; commit;