Module:Effective protection level
Dokumentasyon sa module
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: Unang PahinaGastroenteritisNatatangi:MaghanapSakit sa ibaba ng likodImpeksiyon sa daanan ng ihiPamamaga ng lalamunanPersona non grata (Pilipinas)PulmonyaTuberkulosisKatas ng pukePananakit ng bayagSingaw (sakit)AlmuranasEid al-AdhaJosé RizalLupang HinirangNoli Me Tángere (nobela)BalisawsawWikang TagalogEat Bulaga!Iglesia ni CristoPigsaAba Ginoong MariaApendisitisGonoreaDenguePamamaga ng mataKasaysayan ng PilipinasAraw ng KalayaanIkalawang Digmaang PandaigdigHadhadPilipinasTalaan ng mga kabanata sa Noli Me TangerePagtutuliPagdurugo ng ilongBarangayTitiLalaking nakikipagtalik sa kapwa lalakiEl filibusterismo