Module:Protection banner: Difference between revisions
Content added Content deleted
(add catonly param which hides both the banner and padlock if set to yes. all testcases pass. tested in sandbox.) |
Sakura emad (talk | contribs) m (Changed protection level for "Module:Protection banner": High use templates ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Delete=Allow only bureaucrats] (indefinite) [Protect=Allow only administrators] (indefinite))) |
||
Line 169: | Line 169: | ||
end |
end |
||
return setmetatable(obj, Protection) |
return setmetatable(obj, Protection) |
||
⚫ | |||
function Protection:isUserScript() |
|||
-- Whether the page is a user JavaScript or CSS page. |
|||
local title = self.title |
|||
return title.namespace == 2 and ( |
|||
title.contentModel == 'javascript' or title.contentModel == 'css' |
|||
⚫ | |||
end |
end |
||
Line 182: | Line 174: | ||
return self.level ~= '*' |
return self.level ~= '*' |
||
end |
end |
||
function Protection:shouldShowLock() |
|||
-- Whether we should output a banner/padlock |
|||
return self:isProtected() and not self:isUserScript() |
|||
end |
|||
-- Whether this page needs a protection category. |
|||
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock |
|||
function Protection:isTemporary() |
function Protection:isTemporary() |
||
Line 196: | Line 180: | ||
function Protection:makeProtectionCategory() |
function Protection:makeProtectionCategory() |
||
⚫ | |||
⚫ | |||
end |
|||
local cfg = self._cfg |
local cfg = self._cfg |
||
local title = self.title |
local title = self.title |
||
⚫ | |||
-- Exit if the page is not protected. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
-- Get the expiry key fragment. |
-- Get the expiry key fragment. |
||
Line 216: | Line 201: | ||
namespaceFragment = 'talk' |
namespaceFragment = 'talk' |
||
end |
end |
||
-- Define the order that key fragments are tested in. This is done with an |
-- Define the order that key fragments are tested in. This is done with an |
||
-- array of tables containing the value to be tested, along with its |
-- array of tables containing the value to be tested, along with its |
||
Line 324: | Line 309: | ||
function Protection:isIncorrect() |
function Protection:isIncorrect() |
||
local expiry = self.expiry |
local expiry = self.expiry |
||
return not self: |
return not self:isProtected() |
||
or type(expiry) == 'number' and expiry < os.time() |
or type(expiry) == 'number' and expiry < os.time() |
||
end |
end |
||
Line 339: | Line 324: | ||
function Protection:makeCategoryLinks() |
function Protection:makeCategoryLinks() |
||
local msg = self._cfg.msg |
local msg = self._cfg.msg |
||
local ret = {self:makeProtectionCategory()} |
local ret = { self:makeProtectionCategory() } |
||
if self:isIncorrect() then |
if self:isIncorrect() then |
||
ret[#ret + 1] = makeCategoryLink( |
ret[#ret + 1] = makeCategoryLink( |
||
Line 652: | Line 637: | ||
function Blurb:_makeVandalTemplateParameter() |
function Blurb:_makeVandalTemplateParameter() |
||
return |
return require('Module:Vandal-m')._main{ |
||
⚫ | |||
title="vandal-m", |
|||
⚫ | |||
} |
} |
||
end |
end |
||
Line 843: | Line 827: | ||
-- protection from some other action, then don't bother displaying anything |
-- protection from some other action, then don't bother displaying anything |
||
-- for the other action (except categories). |
-- for the other action (except categories). |
||
if |
if protectionObj.action == 'edit' or |
||
args.demolevel or |
args.demolevel or |
||
not getReachableNodes( |
not getReachableNodes( |
||
cfg.hierarchy, |
cfg.hierarchy, |
||
protectionObj.level |
protectionObj.level |
||
)[effectiveProtectionLevel('edit', protectionObj.title)] |
)[effectiveProtectionLevel('edit', protectionObj.title)] |
||
then |
then |
||
-- Initialise the blurb object |
-- Initialise the blurb object |
||
Line 854: | Line 838: | ||
-- Render the banner |
-- Render the banner |
||
if protectionObj: |
if protectionObj:isProtected() then |
||
ret[#ret + 1] = tostring( |
ret[#ret + 1] = tostring( |
||
(yesno(args.small) and Padlock or Banner) |
(yesno(args.small) and Padlock or Banner) |