view schema/manage_users.sql @ 185:a9d9c2b1d08c

Add database function to create role and user profile
author Tom Gottfried <tom@intevation.de>
date Thu, 19 Jul 2018 16:37:52 +0200
parents
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;