BookStackApp / BookStack

A platform to create documentation/wiki content built with PHP & Laravel
https://www.bookstackapp.com/
MIT License
15.38k stars 1.93k forks source link

Add the concept of entity "Owners" #2246

Closed ssddanbrown closed 3 years ago

ssddanbrown commented 4 years ago

This request is intended to propose a solution to a number of requests surrounding the permission system and the use of the "created_by" value on pages/chapters/shelves/books.

The Scenario

Currently we have various permissions and logic that take into account the creator of an entity. Within the role configuration screen these are shown as "Own" permissions. These use the "created_by" field. There is no way, outside of database access, for this altered between users in the system. When a user is deleted this value is nulled.

Implementation Idea

We would add a concept of "Owners" to the system for entities (Shelves/Books/Chapters/Pages). This would be implemented as follows:

Benefits

tiredofit commented 4 years ago

I think this would be a great step forward to ensure that a) content is not removed when a user is removed from the system and b) also introduces some workflow capabilities.

For example on workflow: I am a user who is creating documentation yet I need to have it reviewed before actual publishing. I would create the content, and assign ownership to an individual (or group) to own the book/page/chapter. The owner would perform any edits, or request additional changes, before finalizing the document, removing the permissions of the "creator" and moving the content to a more public area. If there were ever modifications required to the document, the Owner could simply reapply permissions for the original creator to edit the content and follow through the same routine again before publishing. Essentially this introduces a Steward/Content Moderation workflow which would keep content creation inside the application as opposed to in say a separate word processing document (Google Docs/Office etc) which would have to be manually moved after approval.

I think this would be amazing.

Nello796 commented 4 years ago

I think is a great idea to have something like this. How long do you think it will take to be implemented in BookStack ?

Jregula-pcsd commented 4 years ago

I like this idea as well.

csongs commented 3 years ago

It's good for me. :+1: By the way, I hope only owner can edit Page Revisions` .

In order to avoid edior clear all content of page and delete all Page Revisions of page.

Example:

Delete Page Revisions Edit Page
Editor V
Owner V V
ssddanbrown commented 3 years ago

@csongs Sure, That kind of functionality won't be included as part of this work though, this will be done sooner.

Issue #1747 is much more closely related to that request (And will likely be dependant for entity-level owner permission overrides).