* are distinct from Special Pages because an action must apply to exactly one page.
*
* To add an action in an extension, create a subclass of Action, and add the key to
- * $wgActions. There is also the deprecated UnknownAction hook
+ * $wgActions.
*
* Actions generally fall into two groups: the show-a-form-then-do-something-with-the-input
* format (protect, delete, move, etc), and the just-do-something format (watch, rollback,
}
}
- if ( $this->requiresUnblock() && $user->isBlocked() ) {
+ // If the action requires an unblock, explicitly check the user's block.
+ if ( $this->requiresUnblock() && $user->isBlockedFrom( $this->getTitle() ) ) {
$block = $user->getBlock();
- throw new UserBlockedError( $block );
+ if ( $block ) {
+ throw new UserBlockedError( $block );
+ }
+
+ throw new PermissionsError( $this->getName(), [ 'badaccess-group0' ] );
}
// This should be checked at the end so that the user won't think the