Module:Effective protection level: Difference between revisions
From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(enable titleblacklist checks) |
(add PC detection, from sandbox) |
||
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.main(action, pagename) |
function p.main(action, pagename, frame) |
||
if not frame then |
|||
frame = mw.getCurrentFrame() |
|||
end |
|||
local title |
local title |
||
if type(pagename) == 'table' then |
if type(pagename) == 'table' then |
||
Line 12: | Line 14: | ||
title = mw.title.new(pagename) or mw.title.getCurrentTitle() |
title = mw.title.new(pagename) or mw.title.getCurrentTitle() |
||
end |
end |
||
if action |
if action == 'autoreview' then |
||
local level = frame:callParserFunction('PENDINGCHANGELEVEL', pagename) |
|||
⚫ | |||
if level == 'review' then |
|||
return 'reviewer' |
|||
elseif level ~= '' then |
|||
return level |
|||
else |
|||
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review |
|||
end |
|||
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then |
|||
⚫ | |||
end |
end |
||
if title.namespace == 8 then -- MediaWiki namespace |
if title.namespace == 8 then -- MediaWiki namespace |
||
Line 53: | Line 64: | ||
end |
end |
||
-- Make |
-- Make the protection function usable from wikitext rather than just other lua modules |
||
function p.p(frame) |
function p.p(frame) |
||
local |
local args = frame.args |
||
local pargs = frame:getParent().args |
|||
return p.main( |
return p.main(args.action or args[1] or pargs.action or pargs[1], args.title or args[2] or pargs.title or pargs[2], frame) |
||
end |
end |
||