20 lines
940 B
MySQL
20 lines
940 B
MySQL
|
|
-- ============================================
|
||
|
|
-- KB Groups 2.0 - Access Control by RBAC Group
|
||
|
|
-- Version: 6.2.6
|
||
|
|
-- ============================================
|
||
|
|
-- Associates kb_collections with rbac_groups so that
|
||
|
|
-- THINK KB only returns results from KBs accessible to
|
||
|
|
-- the caller's groups. KBs with no associations remain public.
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS kb_group_associations (
|
||
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
kb_id uuid NOT NULL REFERENCES kb_collections(id) ON DELETE CASCADE,
|
||
|
|
group_id uuid NOT NULL REFERENCES rbac_groups(id) ON DELETE CASCADE,
|
||
|
|
granted_by uuid REFERENCES users(id) ON DELETE SET NULL,
|
||
|
|
granted_at timestamptz NOT NULL DEFAULT NOW(),
|
||
|
|
UNIQUE (kb_id, group_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_kb_group_kb ON kb_group_associations(kb_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_kb_group_grp ON kb_group_associations(group_id);
|