}
private $fld_ids = false, $fld_title = false, $fld_type = false,
- $fld_action = false, $fld_user = false, $fld_userid = false,
+ $fld_user = false, $fld_userid = false,
$fld_timestamp = false, $fld_comment = false, $fld_parsedcomment = false,
$fld_details = false, $fld_tags = false;
$this->fld_ids = isset( $prop['ids'] );
$this->fld_title = isset( $prop['title'] );
$this->fld_type = isset( $prop['type'] );
- $this->fld_action = isset( $prop['action'] );
$this->fld_user = isset( $prop['user'] );
$this->fld_userid = isset( $prop['userid'] );
$this->fld_timestamp = isset( $prop['timestamp'] );
}
// Paranoia: avoid brute force searches (bug 17342)
- $hideActions = $params['namespace'] !== null || !is_null( $title ) || !is_null( $params['action'] );
- if ( $hideActions || !is_null( $user ) ) {
+ if ( $params['namespace'] !== null || !is_null( $title ) || !is_null( $user ) ) {
if ( !$this->getUser()->isAllowed( 'deletedhistory' ) ) {
$titleBits = LogPage::DELETED_ACTION;
$userBits = LogPage::DELETED_USER;
$titleBits = 0;
$userBits = 0;
}
- if ( $hideActions && $titleBits ) {
+ if ( ( $params['namespace'] !== null || !is_null( $title ) ) && $titleBits ) {
$this->addWhere( $db->bitAnd( 'log_deleted', $titleBits ) . " != $titleBits" );
}
if ( !is_null( $user ) && $userBits ) {
if ( $action == 'unblock' ) {
break;
}
+ if ( $legacy ) {
+ $durationKey = 0;
+ $flagsKey = 1;
+ } else {
+ $durationKey = '5::duration';
+ $flagsKey = '6::flags';
+ }
$vals2 = array();
- list( $vals2['duration'], $vals2['flags'] ) = $params;
+ $vals2['duration'] = $params[$durationKey];
+ $vals2['flags'] = isset( $params[$flagsKey] ) ? $params[$flagsKey] : '';
// Indefinite blocks have no expiry time
- if ( SpecialBlock::parseExpiryInput( $params[0] ) !== wfGetDB( DB_SLAVE )->getInfinity() ) {
+ if ( SpecialBlock::parseExpiryInput( $params[$durationKey] ) !== wfGetDB( DB_SLAVE )->getInfinity() ) {
$vals2['expiry'] = wfTimestamp( TS_ISO_8601,
- strtotime( $params[0], wfTimestamp( TS_UNIX, $ts ) ) );
+ strtotime( $params[$durationKey], wfTimestamp( TS_UNIX, $ts ) ) );
}
$vals[$type] = $vals2;
$params = null;
unset( $params['5::mergepoint'] );
}
break;
+ case 'delete':
+ if ( $action === 'event' || $action === 'revision' ) {
+ // replace the named parameter with numbered for backward compatibility
+ if ( $action === 'event' ) {
+ $idsKey = '4::ids';
+ $ofieldKey = '5::ofield';
+ $nfieldKey = '6::nfield';
+ } else {
+ if ( isset( $params['4::type'] ) ) {
+ $params[] = $params['4::type'];
+ unset( $params['4::type'] );
+ }
+ $idsKey = '5::ids';
+ $ofieldKey = '6::ofield';
+ $nfieldKey = '7::nfield';
+ }
+ if ( isset( $params[$idsKey] ) ) {
+ $params[] = implode( ',', $params[$idsKey] );
+ unset( $params[$idsKey] );
+ }
+ if ( isset( $params[$ofieldKey] ) ) {
+ $params[] = $params[$ofieldKey];
+ unset( $params[$ofieldKey] );
+ }
+ if ( isset( $params[$nfieldKey] ) ) {
+ $params[] = $params[$nfieldKey];
+ unset( $params[$nfieldKey] );
+ }
+ }
+ break;
}
if ( !is_null( $params ) ) {
$logParams = array();
$title = Title::makeTitle( $row->log_namespace, $row->log_title );
}
- if ( $this->fld_title || $this->fld_ids || $this->fld_type
- || $this->fld_details && $row->log_params !== ''
- ) {
+ if ( $this->fld_title || $this->fld_ids || $this->fld_details && $row->log_params !== '' ) {
if ( LogEventsList::isDeleted( $row, LogPage::DELETED_ACTION ) ) {
$vals['actionhidden'] = '';
$anyHidden = true;
}
if ( LogEventsList::userCan( $row, LogPage::DELETED_ACTION, $user ) ) {
-
- if ( $this->fld_type ) {
- $vals['action'] = $row->log_action;
- }
if ( $this->fld_title ) {
ApiQueryBase::addTitleInfo( $vals, $title );
}
if ( $this->fld_type ) {
$vals['type'] = $row->log_type;
+ $vals['action'] = $row->log_action;
}
if ( $this->fld_user || $this->fld_userid ) {