31 lines
910 B
MySQL
31 lines
910 B
MySQL
|
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$
|
||
|
;
|