51 public function __construct( ?
string $permission, $status = [] ) {
52 $this->deprecatePublicProperty(
'permission',
'1.43' );
53 $this->deprecatePublicPropertyFallback(
'errors',
'1.43',
55 return $this->status->toLegacyErrorArray();
57 function ( $errors ) {
58 $this->status = PermissionStatus::newEmpty();
59 foreach ( $errors as $error ) {
60 if ( is_array( $error ) ) {
62 $this->status->fatal( ...$error );
64 $this->status->fatal( $error );
70 if ( is_array( $status ) ) {
72 $status = PermissionStatus::newEmpty();
73 foreach ( $errors as $error ) {
74 if ( is_array( $error ) ) {
76 $status->
fatal( ...$error );
78 $status->
fatal( $error );
82 throw new \InvalidArgumentException( __METHOD__ .
83 ': $status must be PermissionStatus or array, got ' . get_debug_type( $status ) );
86 if ( $permission ===
null && $status->
isGood() ) {
87 throw new \InvalidArgumentException( __METHOD__ .
88 ': $permission and $status cannot both be empty' );
91 $this->permission = $permission;
95 ->getPermissionManager()
97 ->newFatalPermissionDeniedStatus( $this->permission, RequestContext::getMain() );
100 $this->status = $status;
103 parent::__construct(
'permissionserrors', $status->
getMessages()[0] );