Effective Protection Level

This module provides a way to retrieve the group required to perform a given action on a page.

It currently tests the following criteria:

  • 在MediaWiki命名空間:sysop
  • 全站/使用者的JavaScript/CSS頁:interfaceadmin
  • 全站/使用者的JSON頁:sysop
  • 被保護頁面:sysop、templateeditor或autoconfirmed
  • 被連鎖保護頁面:sysop
  • 符合標題黑名單:sysop或autoconfirmed
  • 移動檔案:filemover
  • 移動頁面或上傳檔案:autoconfirmed
  • 其餘:*

Usage

Warning: This module will use up to 4 expensive parser function calls each time it is ran. It should only be used if the exact effective protection level is necessary. Otherwise, consider using title.protectionLevels instead.

From other modules

To load this module:

local effectiveProtectionLevel = require('Module:Effective protection level')._main 

The function accepts two parameters. The first is a string containing the action to check, which must be one of "edit", "create", "move", "upload", or "autoreview". The second is optional, and can either be the name of the page to check, or a title returned from the mw.title functions. If the second parameter is omitted, the page being displayed is the one checked against. The return value is a string containing the name of the group required to perform the given action.

From wikitext

The parameters are the same as when it is called directly.

模板:Tlinv 

See also


local p = {}  -- Returns the permission required to perform a given action on a given title. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then error( 'First parameter must be one of edit, move, create, upload, undelete', 2 ) end if title.namespace == 8 then -- MediaWiki namespace if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page return 'interfaceadmin' else -- any non-JS/CSS MediaWiki page return 'sysop' end elseif title.namespace == 2 and title.isSubpage then if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page return 'interfaceadmin' elseif title.contentModel == 'json' then -- user JSON page return 'sysop' end end if action == 'undelete' then return 'sysop' end local level = title.protectionLevels[action] and title.protectionLevels[action][1] if level == 'sysop' or level == 'editprotected' then return 'sysop' elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page return 'sysop' elseif level == 'templateeditor' then return 'templateeditor' elseif action == 'move' then local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move. if blacklistentry and not blacklistentry.params.autoconfirmed then return 'sysop' elseif title.namespace == 6 then return 'filemover' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end end local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename) if blacklistentry then if not blacklistentry.params.autoconfirmed then return 'sysop' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason return 'autoconfirmed' elseif level then return level elseif action == 'upload' then return 'autoconfirmed' else return '*' end end  setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end })  return p 

Tags:

🔥 Trending searches on Wiki 贛語:

拉丁美洲腳踏車8月21號釋迦牟尼十二月居魯士大帝3月15號500年代電信2017年泰國上海1968年4月13號4月24號戈爾巴喬夫4月26號封面畫畫7月21號10月27號穆罕默德1980年希臘百科全書1999年127年6月4號元素週期表成吉思汗1376年840年代309年3月18號1855年1983年越南西里爾字母3月29號國家曆法1910年人民幣8月2號贛江地球文明94年阿根廷皇帝2020年🡆 More