Extension:AccessControl

This page is a translated version of the page Extension:AccessControl and the translation is 37% complete.
Other languages:
English • ‎Türkçe • ‎français • ‎čeština • ‎日本語
AccessControl 3.0.1 is released. You may get code from my git (or tarball):
git clone https://www.thewoodcraft.org/pub/wiki/accesscontrol.git AccessControl

Manual (in czech language for now) here as wiki page, but is prepared for translation. If you want to contribute to creating an English version, you can donate any money for pay a commercial translator, because I have not time for it. On page AccessControl translation, is the PayPal button and bellow is preliminary calculation (in CZK) based on count of chars. The man page translations will be part of the source code as the Czech version for now, and can be imported into your private MediaWiki instance.

--Want (talk) 11:06, 27 May 2020 (UTC)
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
AccessControl
Sürüm durumu: kararlı
Uygulama Kullanıcı hakları , Ayrıştırıcı uzantısı , Etiket
Açıklama Kullanıcı gruplarından dahili gruplara veya grup listelerine dayalı olarak belirli sayfalara erişimin kısıtlanmasına izin verir
Yazar(lar) Aleš Kapica (Wanttalk)
En son sürüm 3.0.1 (2020-05-27)
Uyumluluk politikası usta
MediaWiki 1.29+
PHP 7.2+
Veritabanı değişiklikleri Evet
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir https://www.thewoodcraft.org/pub/wiki/ac-3.0.1.tar.gz
Örnek DCEwiki or Thewoodcraft.org
  • $wgAdminCanReadAll
  • $wgAccessControlRedirect
<accesscontrol> (not need anymore)
Kullanım ve sürüm matrisini kontrol edin.
Sorunlar Açık görevler · Hata bildir

AccessControl uzantısı, dahili gruplara veya grup listelerine dayalı olarak belirli sayfalara kullanıcı alanından erişimi kısıtlar.

MediaWiki varsayılan durumunda bir İçerik Yönetim Sistemi (CMS) olarak tasarlanmamıştır, ancak kurumsal veya okul interneti olarak kullanıldığında hassas verilerin korunması gerekir. AccessControl bu amaç için geliştirilmiştir.

Bu uzantı site güvenliği gereksinimlerini nasıl karşılıyor

  Uyarı: MediaWiki'nin son kararlı sürümünü kullanmanız önerilir, çünkü MediaWiki'nin eski sürümleri farklı yöntemlerle atlanabilir!
Atom/RSS beslemeleri, fark ve düzeltme bağlantıları
Sayfa içeriği korunur, ancak geçmişten bir sayfa açıldığında bir ham içerik görünür. <accesscontrol> etiketi en başa yerleştirildiyse, potansiyel bir saldırgan katkıda bulunan kullanıcıların adlarını görebilir!
Listeler ve arama
Aksi belirtilmedikçe, arama sonuçlarında korumalı içeriğe sahip herhangi bir sayfa varsa, kullanıcı yönlendirilir. Uzantı 2.5 sürümünden beri, aramaya da izin verilebilir. Ancak, görüntülenen arama sonuçlarının hassas verilerden ödün verebileceği akılda tutulmalıdır. Bu nedenle, bir erişim kontrolü ile korunan sayfaların içeriğinde arama yapılmasına izin verilirse, tam metin araması yoluyla elde edilebilecek, viki gibi parola gibi hassas bilgileri yazmayın!
Ekleme/dönüştürme, ilgili haklar ve diğer uzantılar
<accesscontrol> etiketini içeren veya <accesscontrol> etiketi tarafından korunan başka bir sayfa içeren sayfalar güvenlidir. <accesscontrol> etiketi, HTML dönüşümünden önce ham vikimetinde işlenir. Erişim kontrolü ile korunan sayfalara izin verilir!
  Uyarı: DynamicPageList (üçüncü taraf) kullanırken, ayrıştırıcı vikimetini analiz etmeden önce bu uzantının içerik sayfalarından seçildiğini bilmelisiniz. Oluşturulan sayfaların bir <accesscontrol> etiketi ile korunması, yeni sayfanın içeriğine dahil edilen etikete bağlıdır.
Yönlendirmeler
Yeniden yönlendirme sorunu sürüm 1.1'de onarıldı
API ve eylem bağlantıları
Her anonim kullanıcı için, korumasız sayfaların görünüm özelliğinin yanı sıra, eylem sınıfı otomatik olarak false değerine ayarlanır. Yetkili kullanıcılar için izin verilen eylemler, MediaWiki'nin izin ayarlarına ve erişim listesi sayfalarında listelenen kullanıcı adına bağlıdır.
Bölümü ve izleme sayfalarını düzenle
Seçenekler yalnızca kayıtlı kullanıcılar giriş yapmışsa ve güvenlik erişim listesindeyse kullanılabilir.
Dosyalar ve resimler
Uyarı: AccessControl uzantısı, dosyaları URL yoluyla doğrudan erişime karşı korumaz! Dosyalar herkese açık olarak kullanılamıyorsa, sunucu düzeyinde korunmaları gerekir!
XML aktarımı (Special
Export): Uyarı: AccessControl sürüm < 2.0, sayfaları ham koda vermeden önce MediaWiki tarafından korunmayan bir kancaya dayanıyordu. Bu nedenle, AccessControl < 2.0 sürümünü kullanıyorsanız, sayfaların MediaWiki'den dışa aktarılmasını yasaklamak için özel sayfayı yasaklamanız gerekir.
Yazar arka kapı
AccessControl uzantısı arka kapısı yok!
Önbellek
Önbelleği kapatmanızı öneririm. Önceki paragraflara bakınız.

Güvenlikle ilgili olası sorunlar hakkında daha fazla bilgi Yetkilendirme uzantılarıyla ilgili güvenlik sorunları sayfada.

Özellikler

Sürüm 2.1'den bu yana, uzantı gömülü sayfayı veya şablonu da inceler.
  • Kurulumu kolay ve kullanımı basit.
  • MediaWiki çekirdeğine yama yok.
  • Sınırsız grup.
  • Çift modlu erişim kontrolü:
    • Görünüm kontrolü.
    • URL'de action=edit kullanırken manüel düzenleme erişimiyle ilgili kısıtlamalar dahil düzenleme denetimi.
  • Kullanıcı grupları herhangi bir ad alanı kullanabilir.
    • Grup listeli ad alanları başka bir uzantı tarafından korunuyor olabilir.
  • MediaWiki sysop grubu korunan sayfaları görüntüleyebilir ve düzenleyebilir.
    • $wgAdminCanReadAll uzantı değişkeni tarafından denetlenir
  • Birden fazla gruba erişim izni verilebilir
  • Hem gruplara hem de tek tek kullanıcılara salt okunur erişim izni verilebilir.
  • Yetkisiz kullanıcılar arama özelliğini yalnızca izin verilirse kullanabilir. Bu uzantı site güvenliği gereksinimlerini nasıl karşılar bölümüne bakın.

Belgelendirme

Uzantı dosyasını https://github.com/wikimedia/mediawiki-extensions-AccessControl adresinden indirin. Mediawiki\htdocs\extensions dizininize kaydedin.

Kurulum

1. Adım: Yerel Ayarlar Dosyası

  • Add the following lines to the bottom of your LocalSettings.php:
require_once "extensions/AccessControl/AccessControl.php";

#if this one can't run it you can try this

wfLoadExtension( 'AccessControl' );
  • Check the settings in AccessControl.php. These can be set in LocalSettings.php:
$wgAdminCanReadAll = true;			// sysop users can read all restricted pages
$wgAccessControlRedirect = false;	// don't redirect from page with search results for denied and
									// anonymous users, if searching pattern is validate on any
									// protected page.

Step 2: Create User Groups

  • This method has changes in the latest version, please see note 1 at the bottom of this page. (User lists must be stored in the main namespace).

User groups are simply standard wiki pages that are part of a namespace other than the default namespace. For ease of use, it is suggested that a specific custom namespace is created for the explicit purpose of managing access control list pages.

  • Create a wiki page with a users list in any namespace[1]
    • It is not sufficient to simply create a page with a colon (:) in the name, this extension requires the use of a namespace and one or more pages within namespaces
    • Page Name Example: My:Group
      • The namespace is My
      • The group page is Group
        • This is the name of user group
        • Users are added to the group in a bulleted list
    • Page Content Example
      • Presume that the namespace IT exists
        • Note that in v3.0 you also need to registered the namespace IT either in LocalSettings.php e.g. $wgAccessControlNamespaces = array(NS_IT); or modify the extension.json . Furthermore IT: should not be specified in the accesscontrol tag, just "Department"
      • Create a page in the namespace titled "Department"
      • Create users "John Doe" and "Jane Doe" in the group. The group information is contained on the page "Department".
      • Each username appears as a list item.
* John Doe
* Jane Doe (ro)
User names listed with "(ro)" at the end can only read the protected article, not edit it. For other groups of users, you can create another member list with the name Department in another namespace. Note that the user's name must start with a capital letter!
Tips
To protect the IT namespace you can use the Lockdown extension, but you can also use the <accesscontrol> tag to protect it.

Step 3: Additional Access Control

  • Depending on localization, your wiki needs pages created to which anonymous or unauthorized users will be redirected. You have to create them in advance because some of them can't access pages from another page.
  • The safety of the page is provided by the <accesscontrol> tag. If there isn't a tag or the page is empty, it's freely accessible to logged-in users that can read and edit the page. No user, logged in or anonymous, will have read-only access.
  • Members from groups listed in the <accesscontrol> tag can edit the page only if the group title isn't listed with "(ro)" and if they don't have read only access set in the group member list.
  • By default the variable $wgAdminCanReadAll is set to true so that members of 'sysop' can edit user group pages in any namespace.
  Uyarı: When set to false, members of sysop can't read and edit pages protected with the <accesscontrol> tag, which may lead to big trouble. This can only be remedied on the code level.
Example tag code
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>
In v3.0 the namespace was automatically added, thus <accesscontrol>Department</accesscontrol> worked for me.

In this example, all users from the groups "Administrators", "IT:Department" and "Sales" can read the page but only the users from "Administrators" group (if exists) and John Doe from "IT:Department" user group can edit it.

Usage on Pages to Control Access

That is for the installation. To restrict access to a page for specific user groups, just include the names of the allowed user groups (separated by commas) as the content of the <accesscontrol> tag in the top of the content page.

Attention

MediaWiki sürümü: 1.21
This extension was written to allow users to create pages accessible only to a selected group of registered and logged-in users, who be could alone managed access of this page, without having what to contact a person with higher rights for it.

My original intention as the author was to allow anyone to "lock" any page just for their chosen circle of co-workers or friends, no matter to namespace where is page located. So that things that are subject to copyright protection or that contain knowledgeable know-how can be cooperatively share a band of verified users.

A workaround, which is "recommend" for version MediaWiki ≥ 2.0, goes against my idea why this extension I were made. Since version 2.6 has been into mainline code ACL a change, which was based on a misunderstanding of my original intent, it was not possible – for me as the original author – to continue as maintainer this extension, because it can't use with any wiki that uses that ACL as was originally intended.

However version 2.5.1 based on my code is still usable for every version MediaWiki, because I use installation from Git, and if there is a change in mainline MediaWiki that would require updating this code, I can guarantee that I will implement it.

Want (talk) 08:14, 3 April 2019 (UTC)

Version 2.5.1 is strongly recommended to be used.

For version < 2.3

  • There was a problem in function fromTemplate() causing AccessControl to ignore tags from included pages or templates. Actualization is recommended!

For version ≥ 2.0

MediaWiki sürümü: 1.18 – 1.20
  Uyarı: From version 2.0 the extension does not use wiki user groups (except sysop), only groups created by user access lists!
  • Pages can have only one <accesscontrol> element.
  • If the user is a member of multiple groups, the group that gives them more access is assumed.
  • This extension uses a MediaWiki hook that is called whenever a search result is displayed. This means that a page that has an ACL will trigger an "Access Denied" message for end users who happen to search for text contained in a protected page. A simple solution is to put pages that require AccessControl into another namespace and then disable searching for that namespace. Although this isn't really a bug, it is undesirable behavior. Click here for an example showing a work around.
  Uyarı: MediaWiki >= 1.21 contains new a framework ContentHandler and extension version 2.1 is unusable. Use AccessControl version 2.2 which is updated for MediaWiki 1.21 and above.

For version ≤ 1.3

MediaWiki sürümü: 1.17
  • Groups from MediaWiki must not be in localized form! 'sysop' cannot be 'Správce' , etc.
  • A page may have multiple <accesscontrol> elements, with access accepted from groups in any tag.
  • Anonymous users do not have access to pages protected by <accesscontrol> elements.
  • If variable $wgAdminCanReadAll is true, sysops always have edit access.

MediaWiki Version Testing

  • Version 3.0.1 was tested on MediaWiki 1.34.0
  • Version 2.5.1 was tested on MediaWiki 1.33.0-alpha (5eb97ec)
  • Version 2.6 was tested on MediaWiki 1.27.0-rc.0 (57f722a)
  • Version 2.5 was tested on MediaWiki 1.27.0 (from git repository)
  • Version 2.5 was tested on MediaWiki 1.22.9 (from git repository)
  • Version 2.3 was tested on MediaWiki 1.22.0 (from git repository)
  • Version 2.2 was tested on MediaWiki 1.22.0 (from git repository)
  • Version 2.0 was tested on MediaWiki 1.19-alpha (from svn repository)
  • Version 1.2 was tested on MediaWiki 1.15.5-1 (from Debian repository)
  • Version 1.1 was tested on MediaWiki 1.16.0(b3). Works fine, except that it needed a minor change to line 358 of AccessControl.php (remove '&' from parameter to function controlEditAccess() ). When viewing a page on a Linux server, the <accesscontrol> tags show. But on a Windows server, the tags don't show and it is fine! Still haven't figured that one out, but it is ok for my application.
  • Version 1.1 was tested on MediaWiki 1.15
  • Version 1.0 of this extension has been tested and works fine on MediaWikis > 1.12.x.
  • Version 1.1 tested on MediaWiki 1.16.1 with new patch from http://git.felk.cvut.cz/pub/git?p=accesscontrol.git;a=commitdiff;h=2f678deed0e4e4f77620e391c94559c7b50102a9

History

The first version of this extension (1.x) was based on Group Based Access Control, but without bugs the original had.[2]

See also

Notes

  1. As of version 2.0, it only works with ACLs stored in the main namespace. It also can only protect pages that are in the main namespace. Changes need to be made to $getUsersFromPages and $getContentPage to correct this behavior. Click here to see a patched version of the extension that is compatible with namespaces.
  2. Unlike Group Based Access Control, double commas aren't used to split the content of an <accesscontrol> tag when more access lists are used. Only one comma is required. And is not necessary to use the ',,' separator at the end of the element content.