Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rich per-user and per-object permission controls #2588

Merged
merged 16 commits into from
Aug 30, 2024
Merged

Add rich per-user and per-object permission controls #2588

merged 16 commits into from
Aug 30, 2024

Conversation

Floppy
Copy link
Collaborator

@Floppy Floppy commented Aug 28, 2024

Uses our new Caber gem to provide a simple ReBAC implementation that doesn't need a separate auth server, unlike the existing ones. Might not be the fastest thing in the world, but optimisation comes later!

This PR covers the backend logic, UI will come in a separate one.

Part of #2220, and supports later development on #2192 as well.

@Floppy Floppy added the feature User-facing features and product enhancements label Aug 28, 2024
@Floppy Floppy force-pushed the rebac branch 2 times, most recently from 1a48101 to c8c5ed1 Compare August 29, 2024 22:03
@Floppy Floppy added this to the v1.0.0 milestone Aug 29, 2024
Copy link

codeclimate bot commented Aug 30, 2024

Code Climate has analyzed commit d6e360c and detected 0 issues on this pull request.

The test coverage on the diff in this pull request is 100.0% (50% is the threshold).

This pull request will bring the total coverage in the repository to 86.7% (0.2% change).

View more on Code Climate.

@Floppy Floppy marked this pull request as ready for review August 30, 2024 13:54
@Floppy Floppy changed the title Rich permission controls using a ReBAC/Zanzibar approach Add rich per-user and per-object permission controls Aug 30, 2024
@Floppy Floppy merged commit d80b11d into main Aug 30, 2024
11 checks passed
@Floppy Floppy deleted the rebac branch August 30, 2024 13:56
truecharts-admin referenced this pull request in truecharts/public Sep 4, 2024
….77.0@fe5892f by renovate (#25917)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/manyfold3d/manyfold](https://redirect.github.com/manyfold3d/manyfold)
| minor | `0.76.1` -> `0.77.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>manyfold3d/manyfold (ghcr.io/manyfold3d/manyfold)</summary>

###
[`v0.77.0`](https://redirect.github.com/manyfold3d/manyfold/releases/tag/v0.77.0)

[Compare
Source](https://redirect.github.com/manyfold3d/manyfold/compare/v0.76.1...v0.77.0)

Now you can control who you share your stuff with - even the entire
world if you want! You can grant per-item viewing, editing, or owner
permissions, and you can grant them to all local users, individual
users, or the general public so your stuff can be viewed without an
account. By default, new and existing content will be available to view
by all local users, which is the same as previous versions. But, admins
can change that default in settings to make new items private instead.

#### What's Changed

##### ✨ New Features ✨

- Allow federation on single-user instances by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2565](https://redirect.github.com/manyfold3d/manyfold/pull/2565)
- Add rich per-user and per-object permission controls by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2588](https://redirect.github.com/manyfold3d/manyfold/pull/2588)
- Set owner permissions for uploaded models by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2592](https://redirect.github.com/manyfold3d/manyfold/pull/2592)
- Let admin choose default permissions for new items by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2598](https://redirect.github.com/manyfold3d/manyfold/pull/2598)
- Show sharing settings on edit forms for Model, Creator and Collection
by [@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2605](https://redirect.github.com/manyfold3d/manyfold/pull/2605)
- Set sharing & permissions on model, creator, and collection edit pages
by [@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2606](https://redirect.github.com/manyfold3d/manyfold/pull/2606)
- Allow visitors to view public models without logging in by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2607](https://redirect.github.com/manyfold3d/manyfold/pull/2607)

##### 🛠️ Other Improvements 🛠️

- Upgrade to latest alpine release by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2584](https://redirect.github.com/manyfold3d/manyfold/pull/2584)
- Update to Ruby 3.3.4 by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2586](https://redirect.github.com/manyfold3d/manyfold/pull/2586)
- Rename default roles for greater clarity alongside ReBAC permissions
by [@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2593](https://redirect.github.com/manyfold3d/manyfold/pull/2593)
- Translation updates (particularly de) by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2599](https://redirect.github.com/manyfold3d/manyfold/pull/2599)
- DRY up some older code with concerns by
[@&#8203;Floppy](https://redirect.github.com/Floppy) in
[https://github.com/manyfold3d/manyfold/pull/2611](https://redirect.github.com/manyfold3d/manyfold/pull/2611)

**Full Changelog**:
manyfold3d/manyfold@v0.76.1...v0.77.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC42Ny4yIiwidXBkYXRlZEluVmVyIjoiMzguNjcuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJ1cGRhdGUvZG9ja2VyL2dlbmVyYWwvbm9uLW1ham9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature User-facing features and product enhancements
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

1 participant