From: Rotem Liss Date: Tue, 27 Nov 2007 10:22:14 +0000 (+0000) Subject: Make API check for page restrictions in the old format too. X-Git-Tag: 1.31.0-rc.0~50704 X-Git-Url: http://git.cyclocoop.org/%24href?a=commitdiff_plain;h=27f805f86c13078ba9f12c328a477668c46b9785;p=lhc%2Fweb%2Fwiklou.git Make API check for page restrictions in the old format too. --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index bc04cae428..5751c2d97f 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -194,7 +194,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN for users with special characters in their names * The number of watching users in watchlists was always reported as 1 * namespaceDupes.php no longer dies when coming across an illegal title - +* Make API check for restrictions in the old format too. == Parser changes in 1.12 == diff --git a/includes/api/ApiQueryInfo.php b/includes/api/ApiQueryInfo.php index b1b1a9a4ac..39a6c80ea4 100644 --- a/includes/api/ApiQueryInfo.php +++ b/includes/api/ApiQueryInfo.php @@ -40,6 +40,7 @@ class ApiQueryInfo extends ApiQueryBase { } public function requestExtraData($pageSet) { + $pageSet->requestField('page_restrictions'); $pageSet->requestField('page_is_redirect'); $pageSet->requestField('page_is_new'); $pageSet->requestField('page_counter'); @@ -70,6 +71,7 @@ class ApiQueryInfo extends ApiQueryBase { $titles = $pageSet->getGoodTitles(); $result = $this->getResult(); + $pageRestrictions = $pageSet->getCustomField('page_restrictions'); $pageIsRedir = $pageSet->getCustomField('page_is_redirect'); $pageIsNew = $pageSet->getCustomField('page_is_new'); $pageCounter = $pageSet->getCustomField('page_counter'); @@ -125,7 +127,36 @@ class ApiQueryInfo extends ApiQueryBase { $pageInfo['protection'] = $protections[$pageid]; $result->setIndexedTagName($pageInfo['protection'], 'pr'); } else { - $pageInfo['protection'] = array(); + # Also check old restrictions + if( $pageRestrictions[$pageid] ) { + foreach( explode( ':', trim( $pageRestrictions[$pageid] ) ) as $restrict ) { + $temp = explode( '=', trim( $restrict ) ); + if(count($temp) == 1) { + // old old format should be treated as edit/move restriction + $restriction = trim( $temp[0] ); + $pageInfo['protection'][] = array( + 'type' => 'edit', + 'level' => $restriction, + 'expiry' => 'infinity', + ); + $pageInfo['protection'][] = array( + 'type' => 'move', + 'level' => $restriction, + 'expiry' => 'infinity', + ); + } else { + $restriction = trim( $temp[1] ); + $pageInfo['protection'][] = array( + 'type' => $temp[0], + 'level' => $restriction, + 'expiry' => 'infinity', + ); + } + } + $result->setIndexedTagName($pageInfo['protection'], 'pr'); + } else { + $pageInfo['protection'] = array(); + } } }