-- -- acs_user__new/5 -- create or replace function acs_user__new( character varying, character varying, character varying, character, character ) returns int4 as $$ declare email alias for $1; fname alias for $2; lname alias for $3; pword alias for $4; salt alias for $5; begin return acs_user__new(null, 'user', now(), null, null, email, null, fname, lname, pword, salt, null, null, null, 't', null ); end;$$ language plpgsql; -- -- acs_user__new/16 -- create or replace function acs_user__new( p_user_id integer, p_object_type character varying, p_creation_date timestamp with time zone, p_creation_user integer, p_creation_ip character varying, p_authority_id integer, p_username character varying, p_email character varying, p_url character varying, p_first_names character varying, p_last_name character varying, p_password character, p_salt character, p_screen_name character varying, p_email_verified_p boolean, p_context_id integer ) returns int4 as $$ DECLARE v_user_id users.user_id%TYPE; v_authority_id auth_authorities.authority_id%TYPE; v_person_exists integer; BEGIN v_user_id := p_user_id; select 1 from persons into v_person_exists where person_id = v_user_id; if NOT FOUND then v_user_id := person__new( v_user_id, p_object_type, p_creation_date, p_creation_user, p_creation_ip, p_email, p_url, p_first_names, p_last_name, p_context_id ); else update acs_objects set object_type = 'user' where object_id = v_user_id; end if; -- default to local authority if p_authority_id is null then select authority_id into v_authority_id from auth_authorities where short_name = 'local'; else v_authority_id := p_authority_id; end if; insert into users (user_id, authority_id, username, password, salt, screen_name, email_verified_p) values (v_user_id, v_authority_id, p_username, p_password, p_salt, p_screen_name, p_email_verified_p); insert into user_preferences (user_id) values (v_user_id); return v_user_id; END; $$ language plpgsql;