protected function alterForm( HTMLForm $form ) {
$form->setWrapperLegendMsg( 'blockip-legend' );
$form->setHeaderText( '' );
- $form->setSubmitCallback( array( __CLASS__, 'processUIForm' ) );
$form->setSubmitDestructive();
$msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit';
# Link to edit the block dropdown reasons, if applicable
if ( $user->isAllowed( 'editinterface' ) ) {
- $links[] = Linker::link(
+ $links[] = Linker::linkKnown(
$this->msg( 'ipbreason-dropdown' )->inContentLanguage()->getTitle(),
$this->msg( 'ipb-edit-dropdown' )->escaped(),
array(),
}
/**
- * Submit callback for an HTMLForm object, will simply pass
- * @param array $data
- * @param HTMLForm $form
- * @return bool|string
- */
- public static function processUIForm( array $data, HTMLForm $form ) {
- return self::processForm( $data, $form->getContext() );
- }
-
- /**
- * Given the form data, actually implement a block
+ * Given the form data, actually implement a block. This is also called from ApiBlock.
+ *
* @param array $data
* @param IContextSource $context
* @return bool|string
if ( $data['HideUser'] ) {
if ( !$performer->isAllowed( 'hideuser' ) ) {
# this codepath is unreachable except by a malicious user spoofing forms,
- # or by race conditions (user has oversight and sysop, loads block form,
- # and is de-oversighted before submission); so need to fail completely
+ # or by race conditions (user has hideuser and block rights, loads block form,
+ # and loses hideuser rights before submission); so need to fail completely
# rather than just silently disable hiding
return array( 'badaccess-group0' );
}
$logParams['5::duration'] = $data['Expiry'];
$logParams['6::flags'] = self::blockLogFlags( $data, $type );
- # Make log entry, if the name is hidden, put it in the oversight log
+ # Make log entry, if the name is hidden, put it in the suppression log
$log_type = $data['HideUser'] ? 'suppress' : 'block';
$logEntry = new ManualLogEntry( $log_type, $logaction );
$logEntry->setTarget( Title::makeTitle( NS_USER, $target ) );
/**
* Process the form on POST submission.
* @param array $data
+ * @param HTMLForm $form
* @return bool|array True for success, false for didn't-try, array of errors on failure
*/
- public function onSubmit( array $data ) {
- // This isn't used since we need that HTMLForm that's passed in the
- // second parameter. See alterForm for the real function
+ public function onSubmit( array $data, HTMLForm $form = null ) {
+ return self::processForm( $data, $form->getContext() );
}
/**