@@ 96-115 (lines=20) @@ | ||
93 | $this->addWhereFld( 'ct_tag', $params['tag'] ); |
|
94 | } |
|
95 | ||
96 | if ( $this->fetchContent ) { |
|
97 | // Modern MediaWiki has the content for deleted revs in the 'text' |
|
98 | // table using fields old_text and old_flags. But revisions deleted |
|
99 | // pre-1.5 store the content in the 'archive' table directly using |
|
100 | // fields ar_text and ar_flags, and no corresponding 'text' row. So |
|
101 | // we have to LEFT JOIN and fetch all four fields. |
|
102 | $this->addTables( 'text' ); |
|
103 | $this->addJoinConds( |
|
104 | [ 'text' => [ 'LEFT JOIN', [ 'ar_text_id=old_id' ] ] ] |
|
105 | ); |
|
106 | $this->addFields( [ 'ar_text', 'ar_flags', 'old_text', 'old_flags' ] ); |
|
107 | ||
108 | // This also means stricter restrictions |
|
109 | if ( !$user->isAllowedAny( 'undelete', 'deletedtext' ) ) { |
|
110 | $this->dieUsage( |
|
111 | 'You don\'t have permission to view deleted revision content', |
|
112 | 'permissiondenied' |
|
113 | ); |
|
114 | } |
|
115 | } |
|
116 | ||
117 | $dir = $params['dir']; |
|
118 |
@@ 151-171 (lines=21) @@ | ||
148 | $this->addWhereFld( 'ct_tag', $params['tag'] ); |
|
149 | } |
|
150 | ||
151 | if ( $fld_content ) { |
|
152 | // Modern MediaWiki has the content for deleted revs in the 'text' |
|
153 | // table using fields old_text and old_flags. But revisions deleted |
|
154 | // pre-1.5 store the content in the 'archive' table directly using |
|
155 | // fields ar_text and ar_flags, and no corresponding 'text' row. So |
|
156 | // we have to LEFT JOIN and fetch all four fields, plus ar_text_id |
|
157 | // to be able to tell the difference. |
|
158 | $this->addTables( 'text' ); |
|
159 | $this->addJoinConds( |
|
160 | [ 'text' => [ 'LEFT JOIN', [ 'ar_text_id=old_id' ] ] ] |
|
161 | ); |
|
162 | $this->addFields( [ 'ar_text', 'ar_flags', 'ar_text_id', 'old_text', 'old_flags' ] ); |
|
163 | ||
164 | // This also means stricter restrictions |
|
165 | if ( !$user->isAllowedAny( 'undelete', 'deletedtext' ) ) { |
|
166 | $this->dieUsage( |
|
167 | 'You don\'t have permission to view deleted revision content', |
|
168 | 'permissiondenied' |
|
169 | ); |
|
170 | } |
|
171 | } |
|
172 | // Check limits |
|
173 | $userMax = $fld_content ? ApiBase::LIMIT_SML1 : ApiBase::LIMIT_BIG1; |
|
174 | $botMax = $fld_content ? ApiBase::LIMIT_SML2 : ApiBase::LIMIT_BIG2; |
@@ 138-157 (lines=20) @@ | ||
135 | $this->addWhereFld( 'ct_tag', $params['tag'] ); |
|
136 | } |
|
137 | ||
138 | if ( $this->fetchContent ) { |
|
139 | // Modern MediaWiki has the content for deleted revs in the 'text' |
|
140 | // table using fields old_text and old_flags. But revisions deleted |
|
141 | // pre-1.5 store the content in the 'archive' table directly using |
|
142 | // fields ar_text and ar_flags, and no corresponding 'text' row. So |
|
143 | // we have to LEFT JOIN and fetch all four fields. |
|
144 | $this->addTables( 'text' ); |
|
145 | $this->addJoinConds( |
|
146 | [ 'text' => [ 'LEFT JOIN', [ 'ar_text_id=old_id' ] ] ] |
|
147 | ); |
|
148 | $this->addFields( [ 'ar_text', 'ar_flags', 'old_text', 'old_flags' ] ); |
|
149 | ||
150 | // This also means stricter restrictions |
|
151 | if ( !$user->isAllowedAny( 'undelete', 'deletedtext' ) ) { |
|
152 | $this->dieUsage( |
|
153 | 'You don\'t have permission to view deleted revision content', |
|
154 | 'permissiondenied' |
|
155 | ); |
|
156 | } |
|
157 | } |
|
158 | ||
159 | $miser_ns = null; |
|
160 |