4 Commits
Author SHA1 Message Date
marc e51bbf2312 docs: GitHub (crudylabs) is the public home for source and issues 2026-10-02 21:24:17 +02:00
marc 004cae3aa1 release: 1.0.0
First stable release. Bumps the control file, META.json and the release
tooling, and renames the install script to pgmorbac--1.0.0.sql.
2026-07-25 07:45:06 +02:00
marc ce11d1b593 docs: complete function reference, drop unicode punctuation
Documents refresh_hierarchy_cache, is_rule_valid and org_in_scope, and
corrects the get_org_scope scope list which still omitted unattributed
and all.

Replaces em dashes and other typographic unicode with ASCII throughout
the schema comments, the test suite and the documentation. Comments and
prose are ASCII only.
2026-07-25 07:26:54 +02:00
marc 03236e67d5 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
2026-07-24 22:35:03 +02:00
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -24,11 +24,11 @@
"resources": {
"homepage": "https://pgmorbac.villains.fr",
"bugtracker": {
"web": "https://git.villains.fr/crudy/pgmorbac/issues"
"web": "https://github.com/crudylabs/pgmorbac/issues"
},
"repository": {
"url": "https://git.villains.fr/crudy/pgmorbac.git",
"web": "https://git.villains.fr/crudy/pgmorbac",
"url": "https://github.com/crudylabs/pgmorbac.git",
"web": "https://github.com/crudylabs/pgmorbac",
"type": "git"
}
},
+3 -3
View File
@@ -34,7 +34,7 @@ A PostgreSQL extension implementing the Multi-OrBAC access control model - enabl
```bash
# Clone repository
git clone https://git.villains.fr/crudy/pgmorbac.git
git clone https://github.com/crudylabs/pgmorbac.git
cd pgmorbac
# Build and install extension
@@ -257,7 +257,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
```bash
git clone https://git.villains.fr/crudy/pgmorbac.git
git clone https://github.com/crudylabs/pgmorbac.git
cd pgmorbac
# Edit source files in src/
@@ -278,7 +278,7 @@ git push --tags
## Support
- Read the [documentation](https://pgmorbac.villains.fr)
- Report bugs via [Gitea Issues](https://git.villains.fr/crudy/pgmorbac/issues)
- Report bugs via [GitHub Issues](https://github.com/crudylabs/pgmorbac/issues)
- Security issues: see [SECURITY.md](SECURITY.md)
## Comparison with Traditional RBAC