25 private readonly
bool $new,
32 if ( $this->
new && !$this->performer->authorizeWrite(
'create', $this->target, $status ) ) {
33 return $this->castPermissionStatus( $status );
36 if ( !$this->performer->authorizeWrite(
'edit', $this->target, $status ) ) {
37 return $this->castPermissionStatus( $status );
40 return $this->castPermissionStatus( $status );
43 private function castPermissionStatus( PermissionStatus $status ): EditPageStatus {
44 if ( $status->isGood() ) {
49 if ( $status->isBlocked() ) {
50 $value = self::AS_BLOCKED_PAGE_FOR_USER;
51 } elseif ( $status->isRateLimitExceeded() ) {
52 $value = self::AS_RATE_LIMITED;
53 } elseif ( $status->getPermission() ===
'create' ) {
54 $value = self::AS_NO_CREATE_PERMISSION;
55 } elseif ( !$this->performer->isRegistered() ) {
56 $value = self::AS_READ_ONLY_PAGE_ANON;
58 $value = self::AS_READ_ONLY_PAGE_LOGGED;
62 ->setErrorFunction( $status->throwErrorPageError( ... ) )
63 ->setResult(
false, $value );