Module:Effective protection level
Documentatie voor deze module kan aangemaakt worden op de volgende pagina: Module: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 titleif type(pagename) == 'table' and pagename.prefixedText thentitle = pagenameelseif pagename thentitle = mw.title.new(pagename)elsetitle = mw.title.getCurrentTitle()endpagename = title.prefixedTextif action == 'autoreview' thenlocal level = mw.ext.FlaggedRevs.getStabilitySettings(title)level = level and level.autoreviewif level == 'review' thenreturn 'reviewer'elseif level ~= '' thenreturn levelelsereturn 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 reviewendelseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' thenerror( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )endif title.namespace == 8 then -- MediaWiki namespaceif title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS pagereturn 'interfaceadmin'else -- any non-JS/CSS MediaWiki pagereturn 'sysop'endelseif title.namespace == 2 and title.isSubpage thenif title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS pagereturn 'interfaceadmin'elseif title.contentModel == 'json' then -- user JSON pagereturn 'sysop'endendif action == 'undelete' thenreturn 'sysop'endlocal level = title.protectionLevels[action] and title.protectionLevels[action][1]if level == 'sysop' or level == 'editprotected' thenreturn 'sysop'elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected pagereturn 'sysop'elseif level == 'templateeditor' thenreturn 'templateeditor'elseif action == 'move' thenlocal 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 thenreturn 'templateeditor'elseif title.namespace == 6 thenreturn 'filemover'elseif level == 'extendedconfirmed' thenreturn 'extendedconfirmed'elsereturn 'autoconfirmed'endendlocal blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)if blacklistentry thenif not blacklistentry.params.autoconfirmed thenreturn 'templateeditor'elseif level == 'extendedconfirmed' thenreturn 'extendedconfirmed'elsereturn 'autoconfirmed'endelseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reasonreturn 'autoconfirmed'elseif level thenreturn levelelseif action == 'upload' thenreturn 'autoconfirmed'elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than draftsreturn 'user'elsereturn '*'endendsetmetatable(p, { __index = function(t, k)return function(frame)return t._main(k, frame.args[1])endend })return p
🔥 Top keywords: HoofdpaginaSpeciaal:ZoekenWout WeghorstEuropees kampioenschap voetbal mannenMaximilian WöberEuropees kampioenschap voetbal 2024Kylian MbappéAntoine GriezmannMarko ArnautovićRomelu LukakuFleur AgemaChatGPTEuropees kampioenschap voetbal 2020Domenico TedescoChristoph BaumgartnerReuben De BoelJodie DevosWout FaesBart Verbruggen (voetballer)Belgisch voetbalelftal (mannen)Jérémy DokuN'Golo KantéSlowakijeCyriel DessersOmvolkingKevin De BruyneNederlands voetbalelftal (mannen)Léon de JongWereldkampioenschap voetbal 2022OfferfeestAmadou OnanaPhillipp MweneMarjolein Faber-van de KlashorstKoen CasteelsFlorian GrillitschMemphis DepayJeroen StekelenburgWereldkampioenschap voetbalFIFA-wereldranglijst mannen