Commit Graph

13 Commits

Author SHA1 Message Date
marc fa7567f5f0 feat(scope): unattributed and all org targets
Adds a first-class org target vocabulary shared by every rule kind: a
specific organization, unattributed (objects whose org is NULL), or all.
A role can now be granted the unassigned pile without a global rule.

- rules.scope gains 'unattributed' and 'all'
- user_rules.org_id accepts NULL to target unattributed objects
- org_in_scope partitions the classes: 'unattributed' matches only a NULL
  target, tree scopes never match one
- has_permission(user, activity, view) capability probe for UI gating
- current_org_filter() parses morbac.org_ids once into org UUIDs plus the
  unattributed-bucket flag (a JSON null element requests it)
- rls_check split by arity so NULL never carries two meanings:
  rls_check(activity, view) for tables with no org column,
  rls_check(activity, view, row_org_id[, row_user_id]) where a NULL
  row_org_id means the record is unattributed
- detect_rule_conflicts is scope-aware, so rules targeting different
  object sets no longer collide

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 22:35:03 +02:00
marc 3ee1e426a8 chore: rehome to crudy/pgmorbac, align version to 0.1.0
Public home is now git.villains.fr/crudy/pgmorbac with docs at
pgmorbac.villains.fr. Point META.json, README and CHANGELOG links there,
drop the tracked .DS_Store, and renumber the first public release to 0.1.0
to match the published @crudy/pgmorbac package, the embedded framework SQL
and the download page. License stays MIT.
2026-07-22 09:16:59 +02:00
marc 145f50749b misc(all): cleanup comments, update documentation, tidy up code 2026-03-27 21:56:00 +01:00
marc a448a73e37 misc(project): add missing documentation and cleanup 2026-03-22 23:57:49 +01:00
marc 32a6a8dd17 refacto: pg_morbac -> pgmorbac 2026-02-22 22:29:52 +01:00
marc 2202676f54 remove: pgcrypto reference 2026-02-22 21:42:50 +01:00
marc b68bded4bb docs: cleanup documentation files 2026-02-20 11:01:32 +01:00
marc 2d5f4ca669 refacto: morbac_pg -> pg_morbac 2026-02-20 10:36:19 +01:00
marc 5b4095677e build: cleanup build process 2026-02-20 01:40:15 +01:00
marc 2cce5ab4c1 feat: improve performance with cache and proper indexing 2026-02-20 00:39:27 +01:00
marc e229f00bba misc: cleanup version numbers 2026-02-20 00:24:49 +01:00
marc 3696665892 feat: add audit logs and temporal constraints 2026-02-20 00:23:06 +01:00
marc 6d74edd570 init: first commit 2026-02-20 00:14:12 +01:00