view schema/manage_users.sql @ 193:1585c334e8a7

More on persisting sessions.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 20 Jul 2018 18:32:11 +0200
parents a9d9c2b1d08c
children 5dc8e734487a
line wrap: on
line source

--
-- Functions encapsulating user management functionality and
-- exposing it to privileged users
--

CREATE OR REPLACE FUNCTION create_user(
       userrole varchar,
       username user_profiles.username%TYPE,
       pw varchar,
       country user_profiles.country%TYPE,
       map_extent user_profiles.map_extent%TYPE,
       email_adress user_profiles.email_adress%TYPE
    )
    RETURNS void
AS $$
BEGIN
    INSERT INTO user_profiles VALUES (
        username, country, map_extent, email_adress);
    EXECUTE format(
        'CREATE ROLE %I IN ROLE %I LOGIN PASSWORD %L', username, userrole, pw);
END;
$$
LANGUAGE plpgsql;