matchEditToken( $this->getRequest()->getVal( 'token' ), $this->getRequest()->getInt( 'rcid' ) ) ) { throw new ErrorPageError( 'sessionfailure-title', 'sessionfailure' ); } return parent::checkCanExecute( $user ); } public function onView() { $rc = RecentChange::newFromId( $this->getRequest()->getInt( 'rcid' ) ); if ( is_null( $rc ) ) { throw new ErrorPageError( 'markedaspatrollederror', 'markedaspatrollederrortext' ); } $errors = $rc->doMarkPatrolled( $this->getUser() ); if ( in_array( array( 'rcpatroldisabled' ), $errors ) ) { throw new ErrorPageError( 'rcpatroldisabled', 'rcpatroldisabledtext' ); } if ( in_array( array( 'hookaborted' ), $errors ) ) { // The hook itself has handled any output return; } # It would be nice to see where the user had actually come from, but for now just guess $returnto = $rc->getAttribute( 'rc_type' ) == RC_NEW ? 'Newpages' : 'Recentchanges'; $return = SpecialPage::getTitleFor( $returnto ); if ( in_array( array( 'markedaspatrollederror-noautopatrol' ), $errors ) ) { $this->getOutput()->setPageTitle( wfMsg( 'markedaspatrollederror' ) ); $this->getOutput()->addWikiMsg( 'markedaspatrollederror-noautopatrol' ); $this->getOutput()->returnToMain( null, $return ); return; } if ( !empty( $errors ) ) { $this->getOutput()->showPermissionsErrorPage( $errors ); return; } # Inform the user $this->getOutput()->setPageTitle( wfMsg( 'markedaspatrolled' ) ); $this->getOutput()->addWikiMsg( 'markedaspatrolledtext', $rc->getTitle()->getPrefixedText() ); $this->getOutput()->returnToMain( null, $return ); } }