--
-- bookmark__update_private_p/2
--
create or replace function bookmark__update_private_p(
  p_bookmark_id integer,
  p_private_p boolean
) returns int4 as $$

DECLARE
    v_owner_id  bm_bookmarks.owner_id%TYPE;
    -- Not used... v_admin_p   bm_in_closed_p.closed_p%TYPE;

BEGIN

    IF p_private_p = FALSE THEN
       -- Turn on security inheritance
       UPDATE acs_objects SET security_inherit_p = TRUE WHERE object_id = p_bookmark_id;

    ELSE
        -- Private case
        -- turn off inheritance
        UPDATE acs_objects SET security_inherit_p = FALSE WHERE object_id = p_bookmark_id;

        -- Grant admin rights to the owner
        SELECT owner_id INTO v_owner_id FROM bm_bookmarks WHERE bookmark_id = p_bookmark_id;

        PERFORM acs_permission__grant_permission (
        p_bookmark_id,
        v_owner_id,
        'admin');

    END IF;
    RETURN 0;

END;
$$ language plpgsql;