Extension:PageEditRestrictions
This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. |
![]() Release status: unmaintained |
|
---|---|
Implementation | User rights |
Description | Restrict editing to a page, by matching that page with a regular expression.
Access is decided by:
|
Author(s) | Pim Bax |
Latest version | 1.0.0 (2017-05-30) |
MediaWiki | 1.23+ |
PHP | 5.3+ |
Database changes | No |
License | GNU General Public License 3.0 or later |
Download | GitHub: Note: |
The PageEditRestrictions extension provides a way to restrict editing to a page, by matching that page with a regular expression. Access is decided by:
- Matching a verified e-mail address to the logged in user's e-mail address.
- MediaWiki user group rights configuration
Usage
editThis extension allows you to restrict editing to a page, by matching that page with a regular
expression on the MediaWiki:Pageeditrestrictions-restricted-pages
page. This expression can also be
prefixed by an index followed by a hashtag. This will make only conditions also prefixed by the
same index apply to that page.
These conditions need to be listed on MediaWiki:Pageeditrestrictions-condition
, where any wikitext
can be used, where $1 will be replaced with the email address of the user trying to edit the page,
and $2 will be replaced with the page name of the page that is being edited. Again, conditions can
be prefixed with an index and a hashtag, which will restrict that condition to only be applied to
the pages that matched a regular expression which both had an index defined to it, and for which
that index matches this index.
If the condition does not name a specific address, but instead starts with an @ sign, all email addresses within that domain will be matched.
Conditions are case-insensitive, regular expressions for pages are not.
Configuration pages
editMediaWiki:Pageeditrestrictions-restricted-pages
edit# List conditions to test the user's email address against. # If one of the conditions is met, editing access will be granted. # Use $1 in place of the user's email address and $2 in place of the page name. # Lines starting with a # will be ignored. # this page includes preloaded examples ^(Foo.*Bar|Bar.*Foo) 1 # ^Main page$ ^User:.*/private ^Project:.*
MediaWiki:Pageeditrestrictions-condition
edit# lines starting with # are a comment. # List conditions to test the user's email address against. # If one of the conditions is met, editing access will be granted. # Use $1 in place of the user's email address and $2 in place of the page name. # this page includes preloaded examples 1 # admin@example.com 1 # @allowed-domain.com {{Emailcheck|$2}} {{AllowedDomain|$1}} 2 # unapplied@example.com
In this example we use two example templates to verify an email address. However this can be configured as desired. Usage of, for example, Semantic MediaWiki is possible.
Template:Emailcheck
:
{{#ifeq:{{{1}}}|Foo Bar|john.doe@example.com|somebody@example.com}}
Template:AllowedDomain
:
{{#switch:{{#explode:{{{1|}}}|@|-1}} |gmail.com = {{{1}}} |hotmail.com = {{{1}}} |#default = not allowed }} }}
These example pages will restrict any page that contains both Foo and Bar in its name to be edited
only by the email address that results from Template:Emailcheck
. This comes down to
john.doe@example.com being allowed to edit the article Foo Bar, and somebody@example.com being
allowed to edit all of the other matched articles for this rule.
Other than that, gmail.com and hotmail.com email addresses are also allowed to edit those pages,
as their email address is returned from Template:AllowedDomain
. Any other address is disallowed,
as the phrase "not allowed" does not match their email address.
On the "Main page" article, only admin@example.com is allowed to edit, but also anybody with an email address on the allowed-domain.com domain. The other conditions are not applied to this page, as it is prefixed by an index.
Finally, the email address unapplied@example.com is not specifically allowed to edit any restricted pages, since it is prefixed by an index that does not match any pages.
Note that using a template will make it possible for any user to change these conditions. It is highly recommended to protect these templates from being edited, to prevent users from granting themselves access by editing the templates to show their own email address.
Installation
edit- Download and place the file(s) in a directory called
PageEditRestrictions
in yourextensions/
folder. - Add the following code at the bottom of your LocalSettings.php file:
require_once "$IP/extensions/PageEditRestrictions/PageEditRestrictions.php";
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Version history
editAuthor: Pim Bax
- Version 1.0 (2017-05-30) - Initial version