Module:Effective protection level: Difference between revisions
make the metatable work with the change coming June 5th
(add a metamethod so the action can be passed as the first param to #invoke instead of 'main') |
(make the metatable work with the change coming June 5th) |
||
Line 3: | Line 3: | ||
-- Returns the permission required to perform a given action on a given title. | -- 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. | -- If no title is specified, the title of the page being displayed is used. | ||
function p. | function p._main(action, pagename) | ||
local title | local title | ||
if type(pagename) == 'table' then | if type(pagename) == 'table' then | ||
title = pagename | title = pagename | ||
else | else | ||
title = mw.title.new(pagename) or mw.title.getCurrentTitle() | title = pagename and mw.title.new(pagename) or mw.title.getCurrentTitle() | ||
end | end | ||
pagename = title.prefixedText | |||
if action == 'autoreview' then | if action == 'autoreview' then | ||
local level = | local level = mw.getCurrentFrame():callParserFunction('PENDINGCHANGELEVEL', pagename) | ||
if level == 'review' then | if level == 'review' then | ||
return 'reviewer' | return 'reviewer' | ||
Line 34: | Line 31: | ||
if level == 'sysop' then | if level == 'sysop' then | ||
return 'sysop' | return 'sysop' | ||
elseif | elseif mw.getCurrentFrame():callParserFunction('CASCADINGSOURCES', pagename) ~= '' then -- used by a cascading-protected page | ||
return 'sysop' | return 'sysop' | ||
elseif level == 'templateeditor' then | elseif level == 'templateeditor' then | ||
Line 65: | Line 62: | ||
setmetatable(p, { __index = function(t, k) | setmetatable(p, { __index = function(t, k) | ||
return function( | return function(frameOrPagename) | ||
return t. | if type(frameOrPagename) == 'table' and frameOrPagename.args then | ||
return t._main(k, frame.args[1]) | |||
else | |||
return t._main(k, frameOrPagename) | |||
end | |||
end | end | ||
end }) | end }) | ||
return p | return p |