-- Deploy numerus:change_password to pg
-- requires: schema_numerus
-- requires: user

begin;

set search_path to numerus, auth, public;

create or replace function change_password(new_password text) returns void as
$$
update "user"
set password = new_password
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, numerus, pg_temp;

revoke execute on function change_password(text) from public;
grant execute on function change_password(text) to invoicer;
grant execute on function change_password(text) to admin;

comment on function change_password(text) is
'Changes the password for the current app user';

commit;
