Copy Permissions (to books) only adds permissions, does not remove them
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
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.
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.
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.
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.