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

Copy Permissions (to books) only adds permissions, does not remove them #5070

Open
BloodyIron opened this issue Jun 13, 2024 · 4 comments
Open
Labels

Comments

@BloodyIron
Copy link

Describe the Bug

When saving a permission change on a Shelf I then sometimes hit Copy Permissions (to books on the shelf) below. And when that adds permissions then that is actually applied. However if I remove a permission override (for example if I previously override permissions for the Public role, but now removed those overrides for this shelf) hit save, and then hit Copy Permissions, the removal of those permission overrides is not propagated to books on the shelf.

Steps to Reproduce

Pretty sure I just described how to do this already.

Expected Behaviour

When I hit "Copy Permissions" I expect the permissions on all books on the shelf to precisely match the permissions as set at that time, add/removes, whatever.

Screenshots or Additional Context

No response

Browser Details

No response

Exact BookStack Version

v24.05.2

@syh7
Copy link

syh7 commented Jun 22, 2024

I don't use permissions (bookstack is just a small hobby project for me), but if I were to copy permissions, I would not want it to remove permissions.
Suppose I have permissions A, B, C on book 1, and permissions X, Y, Z on book 2.
I might be using permissions X, Y, Z on book 2.
If I were to copy from book 1, I do not want to lose X, Y, Z, even though those do not exist on book 1.

@BloodyIron
Copy link
Author

I don't use permissions (bookstack is just a small hobby project for me), but if I were to copy permissions, I would not want it to remove permissions. Suppose I have permissions A, B, C on book 1, and permissions X, Y, Z on book 2. I might be using permissions X, Y, Z on book 2. If I were to copy from book 1, I do not want to lose X, Y, Z, even though those do not exist on book 1.

Well that may be your preference, but for me, I need absolute certainty that the permission changes I made (including removal/revocation) were applied to the recursive regard that is being applied. I would not want to have to go and audit every single book and other aspect it is applying to just to confirm the revocation happened. There are very good reasons for permissions to be revoked, and I for one would not want too much permissions to be granted in scenarios I don't want them to be granted.

If you, in your case, do not want this functionality, then don't hit the button. But to me, being able to have total confidence that the revocation is applied is very important to me. And as you just said, your use-case is for hobby-scale, I'm talking about any scale, including very busy Bookstack instances where such things matter far more than in the hobby scale.

@syh7
Copy link

syh7 commented Jun 23, 2024

A possibly solution could be a permission set.
You could define (in the admin panel) a permission set to contain certain permissions, and then you could select a set to apply to a book/chapter/something. Upon being viewed, a book then checks both its own permissions and the permissions in the set.
Any changes in the set would not need to be changed in the books, because the book just refers to the set. Change 1 place, affect multiple places.
This way you do not accidentally overwrite book-specific permission while copying permissions from another book.

@BloodyIron
Copy link
Author

BloodyIron commented Jun 26, 2024

Sure, that might work. And I would probably want that to be capable of applying to shelves, not just books. But that's not exactly what the original request was about.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

2 participants