-- -- 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;