มอดูลนี้ส่งคืนกลุ่มผู้ใช้ที่สามารถกระทำสิ่งใด ๆ ในหน้าได้ ผลลัพท์ปัจจุบันเป็นดังนี้
แม่แบบนี้ใช้ในข้อความของระบบ การเปลี่ยนแปลงแม่แบบนี้ทำให้เกิดการเปลี่ยนแปลงต่อส่วนติดต่อผู้ใช้ของวิกิพีเดียในทันที เพื่อหลีกเลี่ยงความผิดพลาด การทำการเปลี่ยนแปลงใด ๆ ควรทดลองในหน้าย่อย /sandbox ของแม่แบบก่อน หรืออาจจะทดลองในหน้าย่อยของหน้าผู้ใช้ของคุณ โปรดแจ้งในหน้าอภิปรายก่อนทำการแก้ไข |
ระวัง: มอดูลนี้ใช้งานตัวแจงส่วนที่อาจก่อปัญหาแก่เซิร์ฟเวอร์ถึง 4 ตัวในแต่ละครั้งที่เรียกใช้ โดยจะใช้มอดูลนี้เมื่อจำเป็นเท่านั้น หากไม่จำเป็นขนาดนั้นกรุณาเปลี่ยนไปใช้ title.protectionLevels แทน
ใช้:
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.
The parameters are the same as when it is called directly.
แม่แบบ:Tlinv
คู่มือการใช้งานที่ปรากฏด้านบนนี้ดึงมาจาก มอดูล:Effective protection level/doc (แก้ | ประวัติ) ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของมอดูลนี้ หน้าย่อยของมอดูลนี้ |
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' then error( 'First parameter must be one of edit, move, create, upload', 2 ) end if title.namespace == 8 then -- MediaWiki namespace if 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 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 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 'autocomfirmed' end end local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename) if blacklistentry then return 'autoconfirmed' elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason return 'autoconfirmed' elseif level then return level elseif action == 'upload' then return 'uploader' else return '*' end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p