Module:Protection banner: Difference between revisions
Content added Content deleted
(don't add protection categories or show padlock icons for user js/css pages; based on code contributed by User:ProcrastinatingReader) |
m (Protected "Module:Protection banner": important module ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Delete=Allow only administrators] (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 853: | 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) |