misc(all): cleanup comments, update documentation, tidy up code

This commit is contained in:
2026-03-27 21:56:00 +01:00
parent 41747a79a0
commit 145f50749b
26 changed files with 131 additions and 451 deletions
+2 -17
View File
@@ -1,8 +1,4 @@
-- =============================================================================
-- CONTEXTS
-- =============================================================================
-- Contexts represent conditions under which rules apply
-- Implemented as callable predicates (functions)
-- Contexts represent conditions under which rules apply, implemented as callable predicates
CREATE TABLE morbac.contexts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
@@ -15,13 +11,9 @@ CREATE TABLE morbac.contexts (
CREATE INDEX idx_contexts_name ON morbac.contexts(name);
COMMENT ON TABLE morbac.contexts IS 'Contexts - conditions under which rules apply (callable predicates)';
COMMENT ON COLUMN morbac.contexts.name IS 'Context name (unique)';
COMMENT ON COLUMN morbac.contexts.evaluator IS 'Function that evaluates this context (returns boolean)';
-- =============================================================================
-- DEFAULT CONTEXT: ALWAYS
-- =============================================================================
-- Create a default context that always evaluates to true
-- Default context that always evaluates to true
CREATE OR REPLACE FUNCTION morbac.context_always()
RETURNS BOOLEAN
@@ -35,17 +27,12 @@ $$;
COMMENT ON FUNCTION morbac.context_always() IS 'Default context evaluator - always returns true';
-- Insert the default 'always' context
INSERT INTO morbac.contexts (name, description, evaluator)
VALUES (
'always',
'Default context - always evaluates to true',
'morbac.context_always'::regproc
);
-- =============================================================================
-- CONTEXT EVALUATION HELPER
-- =============================================================================
-- Evaluates a context by calling its evaluator function
CREATE OR REPLACE FUNCTION morbac.eval_context(p_context_id UUID)
RETURNS BOOLEAN
@@ -56,7 +43,6 @@ DECLARE
v_evaluator REGPROC;
v_result BOOLEAN;
BEGIN
-- Get the evaluator function for this context
SELECT evaluator INTO v_evaluator
FROM morbac.contexts
WHERE id = p_context_id;
@@ -65,7 +51,6 @@ BEGIN
RAISE EXCEPTION 'Context % not found', p_context_id;
END IF;
-- Execute the evaluator function
EXECUTE format('SELECT %s()', v_evaluator::text) INTO v_result;
RETURN COALESCE(v_result, FALSE);