35 lines
906 B
MySQL
35 lines
906 B
MySQL
|
-- 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;
|