31 lines
910 B
PL/PgSQL
31 lines
910 B
PL/PgSQL
alter table "public"."usr_session" alter column "key" drop default;
|
|
|
|
set check_function_bodies = off;
|
|
|
|
CREATE OR REPLACE FUNCTION public.usr_session_login(tag_or_email usr_tag_or_email, password text, remember boolean DEFAULT false, location text DEFAULT NULL::text, device usr_session_device DEFAULT NULL::usr_session_device, ip inet DEFAULT NULL::inet)
|
|
RETURNS usr_session_key
|
|
LANGUAGE plpgsql
|
|
AS $function$
|
|
declare
|
|
usr public.usr;
|
|
key public.usr_session_key := usr_session_key_gen();
|
|
expires_at timestamp;
|
|
begin
|
|
usr := public.usr_session_login_validate(tag_or_email, password);
|
|
|
|
if remember then
|
|
expires_at := now() + interval '1 week';
|
|
else
|
|
expires_at := now() + interval '1 hour';
|
|
end if;
|
|
|
|
insert into public.usr_session
|
|
(key, expires_at, usr, location, device, ip)
|
|
values
|
|
(key, expires_at, usr.id, location, device, ip);
|
|
|
|
return key;
|
|
end;
|
|
$function$
|
|
;
|