|
|
Line 13: |
Line 13: |
| end | | end |
| pagename = title.prefixedText | | pagename = title.prefixedText |
| if action == 'autoreview' then | | if action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then |
| local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
| | error( 'First parameter must be one of edit, move, create, upload', 2 ) |
| level = level and level.autoreview
| |
| 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
| |
| error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 ) | |
| end | | end |
| if title.namespace == 8 then -- MediaWiki namespace | | if title.namespace == 8 then -- MediaWiki namespace |
Line 44: |
Line 34: |
| elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page | | elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page |
| return 'sysop' | | return 'sysop' |
| elseif level == 'templateeditor' then
| |
| return 'templateeditor'
| |
| elseif action == 'move' then | | elseif action == 'move' then |
| local 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. | | local 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 then | | if blacklistentry and not blacklistentry.params.autoconfirmed then |
| return 'templateeditor' | | return 'sysop' |
| elseif title.namespace == 6 then | | elseif title.namespace == 6 then |
| return 'filemover' | | return 'sysop' |
| elseif level == 'extendedconfirmed' then
| |
| return 'extendedconfirmed'
| |
| else | | else |
| return 'autoconfirmed' | | return 'autoconfirmed' |
Line 61: |
Line 47: |
| if blacklistentry then | | if blacklistentry then |
| if not blacklistentry.params.autoconfirmed then | | if not blacklistentry.params.autoconfirmed then |
| return 'templateeditor' | | return 'sysop' |
| elseif level == 'extendedconfirmed' then
| |
| return 'extendedconfirmed'
| |
| else | | else |
| return 'autoconfirmed' | | return 'autoconfirmed' |
Line 72: |
Line 56: |
| return level | | return level |
| elseif action == 'upload' then | | elseif action == 'upload' then |
| return 'autoconfirmed' | | return 'uploader' |
| 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 drafts
| |
| return 'user'
| |
| else | | else |
| return '*' | | return '*' |