Extension:PageOwnership

PageOwnership implements page ownership of standard Wiki articles based on users and groups through a user-friendly interface, supports transclusion, cache and Semantic MediaWiki.

When a page is assigned to one or more "owner", the page becomes inaccessible by default to all users who aren't allowed through the interface below.

The extension also defines the right "Can edit unassigned pages (Page Ownership)" in order to allow sysops (or members of the group "editor of unassigned pages (Page Ownership)") to determine which users are allowed to edit or create unassigned pages.

By this way, the entire wiki becomes virtually composed on one hand all of the pages explicitly managed by specific users (namely "owned" by them) and on the other hand of all the unassigned pages managed by sysops or users with specific rights, which are both common, "shared" pages of the wiki, and new pages, which indeed can be assigned to other users or used as shared pages of the wiki.



Installation
Download and place the file(s) in a directory called  in your   folder.
 * Add the following code at the bottom of your LocalSettings.php
 * Run  (this will install the required tables)
 * ✅ – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Features
PageOwnership allows to assign pages and sub-pages to specific users, specific groups or any combination of the two, with specific roles and permissions, through a user-friendly control panel.

This also allows to enforce an implicit moderation on your wiki. You don't directly moderate pages (or page versions) as in FlaggedRevs or Approved Revs, instead, you assign a page and its sub-pages to authorized user(s) or group(s) which can edit them. When the page is ready for publishing, either you grant the access to it to everybody (assigning '*' as reader), or you provide the actual editors with the permissions to do so.

Assigning permissions
Permissions can be set through a user-friendly interface. It is possible to assign multiple sets of permissions to specific pages. Each set of permissions contains the list of users or groups granted with the same privileges, the role (editor, reader, admin) and some options, specifically "edit", "create", "manage properties" and "subpages". The option "manage properties" is available only if the extension PageProperties is installed, and of course when the role is "admin" the options are enabled by default and they are disabled (except "subpages") when the role is "reader". (an "admin", by contrast to an "editor", can assign other users with permissions on the related page)



---

List of permissions
In the List of permissions page (accessible both from the action menu on top of Wiki articles and from the list of Special:SpecialPages of the Wiki) you can find the list of assigned permissions related to that specific page or throughout all the Wiki (when accessed from the list of Special Pages) and of course to assign new permissions and editing existing ones.



(in the scenario above the editing of the page has been granted to the group "Interface-admin" plus to 2 specific users, and the access to the page has been granted to all visitors)

The centralized list of permissions (when accessed from the list of Special Pages instead than from the action menu on top of Wiki articles) can be filtered and includes fields with the related page and the user who created the permission.



---

Navigation panel
PageOwnership creates a list of pages to which logged-in registered users have been assigned (as users, not as members of a group) in the standard navigation panel, so that they can quickly navigate to such pages.



---

Magic word/parser function
PageOwnership includes a Magic word/parser function (called either using  or  ) (case insensitive) to display the list of pages assigned to the logged-in registered user. This can be used by other templates for various purposes.

Configuration
Besides protection based on ownership of specific pages, PageOwnership allows to set additional permissions to regular pages (i.e. pages on the main namespace which have not been assigned to anyone). To do so, just grant desired users or groups with the right

(the settings above will deny anonymous users from editing regular pages, while it will be allowed to registered users)