From 4b1481992317a3c0372188f943cf7f69053610cf Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 13 Nov 2025 10:50:47 +1100 Subject: [PATCH 1/6] Larastan: Add @property --- app/DiscoverCategory.php | 8 +++ app/FollowRequest.php | 13 ++++ app/Follower.php | 11 +++ .../Admin/AdminModeratedProfileResource.php | 14 ++++ app/Http/Resources/AdminHashtag.php | 11 +++ app/Http/Resources/AdminInstance.php | 16 +++++ app/Http/Resources/AdminProfile.php | 8 +++ app/Http/Resources/AdminRemoteReport.php | 10 +++ app/Http/Resources/AdminReport.php | 11 +++ app/Http/Resources/AdminSpamReport.php | 8 +++ app/Http/Resources/AdminUser.php | 15 ++++ app/Http/Resources/DirectoryProfile.php | 5 ++ app/Http/Resources/ImportStatus.php | 3 + .../MastoApi/Admin/DomainBlockResource.php | 9 +++ .../MastoApi/FollowedTagResource.php | 3 + app/Http/Resources/StoryView.php | 4 ++ .../Resources/UserAppSettingsResource.php | 5 ++ app/Models/Group.php | 13 ++++ app/Models/ParentalControls.php | 14 ++++ app/Profile.php | 19 +++++ rector.php | 71 +++++++++++++++++++ 21 files changed, 271 insertions(+) create mode 100644 rector.php diff --git a/app/DiscoverCategory.php b/app/DiscoverCategory.php index 5ecd0e291..618360b05 100644 --- a/app/DiscoverCategory.php +++ b/app/DiscoverCategory.php @@ -5,6 +5,14 @@ namespace App; use Illuminate\Database\Eloquent\Model; use App\{Status, StatusHashtag, Media}; +/** + * @property int $id + * @property string $slug + * @property int|null $media_id + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Media|null $media + */ class DiscoverCategory extends Model { protected $fillable = ['slug']; diff --git a/app/FollowRequest.php b/app/FollowRequest.php index 3c72dc8b9..dffee0c30 100644 --- a/app/FollowRequest.php +++ b/app/FollowRequest.php @@ -5,6 +5,19 @@ namespace App; use Illuminate\Database\Eloquent\Model; use App\Profile; +/** + * @property int $id + * @property int $follower_id + * @property int $following_id + * @property array|null $activity + * @property \Illuminate\Support\Carbon|null $handled_at + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Profile $target + * @property-read \App\Profile $actor + * @property-read \App\Profile $follower + * @property-read \App\Profile $following + */ class FollowRequest extends Model { protected $fillable = ['follower_id', 'following_id', 'activity', 'handled_at']; diff --git a/app/Follower.php b/app/Follower.php index 1fff27912..ff7f2d6de 100644 --- a/app/Follower.php +++ b/app/Follower.php @@ -5,6 +5,17 @@ namespace App; use Illuminate\Database\Eloquent\Model; use App\Profile; +/** + * @property int $id + * @property int $profile_id + * @property int $following_id + * @property bool|null $local_profile + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Profile $actor + * @property-read \App\Profile $target + * @property-read \App\Profile $profile + */ class Follower extends Model { diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php index d0ce5a617..152cda1a5 100644 --- a/app/Http/Resources/Admin/AdminModeratedProfileResource.php +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -6,6 +6,20 @@ use App\Profile; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property string $domain + * @property int $profile_id + * @property string|null $profile_url + * @property string|null $note + * @property bool $is_banned + * @property bool $is_nsfw + * @property bool $is_unlisted + * @property bool $is_noautolink + * @property bool $is_nodms + * @property bool $is_notrending + * @property \Illuminate\Support\Carbon $created_at + */ class AdminModeratedProfileResource extends JsonResource { /** diff --git a/app/Http/Resources/AdminHashtag.php b/app/Http/Resources/AdminHashtag.php index 4ca164268..924481c72 100644 --- a/app/Http/Resources/AdminHashtag.php +++ b/app/Http/Resources/AdminHashtag.php @@ -4,6 +4,17 @@ namespace App\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property string $name + * @property string $slug + * @property bool|null $can_trend + * @property bool|null $can_search + * @property bool $is_nsfw + * @property bool $is_banned + * @property int|null $cached_count + * @property \Illuminate\Support\Carbon $created_at + */ class AdminHashtag extends JsonResource { /** diff --git a/app/Http/Resources/AdminInstance.php b/app/Http/Resources/AdminInstance.php index d534f4681..3d0d55889 100644 --- a/app/Http/Resources/AdminInstance.php +++ b/app/Http/Resources/AdminInstance.php @@ -4,6 +4,22 @@ namespace App\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property string $domain + * @property string|null $software + * @property bool $unlisted + * @property bool $auto_cw + * @property bool $banned + * @property int|null $user_count + * @property int|null $status_count + * @property \Illuminate\Support\Carbon|null $last_crawled_at + * @property string|null $notes + * @property string|null $base_domain + * @property bool|null $ban_subdomains + * @property \Illuminate\Support\Carbon|null $actors_last_synced_at + * @property \Illuminate\Support\Carbon $created_at + */ class AdminInstance extends JsonResource { /** diff --git a/app/Http/Resources/AdminProfile.php b/app/Http/Resources/AdminProfile.php index 50db2d5ca..befcc15cd 100644 --- a/app/Http/Resources/AdminProfile.php +++ b/app/Http/Resources/AdminProfile.php @@ -6,6 +6,14 @@ use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use App\Services\AccountService; +/** + * @property int $id + * @property string|null $domain + * @property string|null $status + * @property bool $cw + * @property bool $unlisted + * @property bool $no_autolink + */ class AdminProfile extends JsonResource { /** diff --git a/app/Http/Resources/AdminRemoteReport.php b/app/Http/Resources/AdminRemoteReport.php index a726e25cc..c32167476 100644 --- a/app/Http/Resources/AdminRemoteReport.php +++ b/app/Http/Resources/AdminRemoteReport.php @@ -8,6 +8,16 @@ use App\Instance; use App\Services\AccountService; use App\Services\StatusService; +/** + * @property int $id + * @property string $uri + * @property int $account_id + * @property array|null $status_ids + * @property string|null $comment + * @property array|null $report_meta + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $action_taken_at + */ class AdminRemoteReport extends JsonResource { /** diff --git a/app/Http/Resources/AdminReport.php b/app/Http/Resources/AdminReport.php index 9b9681bcc..c74a520a4 100644 --- a/app/Http/Resources/AdminReport.php +++ b/app/Http/Resources/AdminReport.php @@ -8,6 +8,17 @@ use App\Story; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property int $profile_id + * @property string|null $type + * @property int $object_id + * @property string $object_type + * @property int $reported_profile_id + * @property string|null $message + * @property \Illuminate\Support\Carbon|null $admin_seen + * @property \Illuminate\Support\Carbon $created_at + */ class AdminReport extends JsonResource { /** diff --git a/app/Http/Resources/AdminSpamReport.php b/app/Http/Resources/AdminSpamReport.php index 6e2badd0f..fb872507a 100644 --- a/app/Http/Resources/AdminSpamReport.php +++ b/app/Http/Resources/AdminSpamReport.php @@ -7,6 +7,14 @@ use Illuminate\Http\Resources\Json\JsonResource; use App\Services\AccountService; use App\Services\StatusService; +/** + * @property int $id + * @property string $type + * @property int|null $item_id + * @property string|null $item_type + * @property \Illuminate\Support\Carbon|null $read_at + * @property \Illuminate\Support\Carbon $created_at + */ class AdminSpamReport extends JsonResource { /** diff --git a/app/Http/Resources/AdminUser.php b/app/Http/Resources/AdminUser.php index 390c5c00e..5bf41f307 100644 --- a/app/Http/Resources/AdminUser.php +++ b/app/Http/Resources/AdminUser.php @@ -5,6 +5,21 @@ namespace App\Http\Resources; use App\Services\AccountService; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property int $profile_id + * @property string|null $name + * @property string $username + * @property bool $is_admin + * @property string $email + * @property \Illuminate\Support\Carbon|null $email_verified_at + * @property bool $2fa_enabled + * @property string|null $register_source + * @property string|null $app_register_ip + * @property bool $has_interstitial + * @property \Illuminate\Support\Carbon|null $last_active_at + * @property \Illuminate\Support\Carbon $created_at + */ class AdminUser extends JsonResource { /** diff --git a/app/Http/Resources/DirectoryProfile.php b/app/Http/Resources/DirectoryProfile.php index d5d4b5841..741128ce0 100644 --- a/app/Http/Resources/DirectoryProfile.php +++ b/app/Http/Resources/DirectoryProfile.php @@ -6,6 +6,11 @@ use Illuminate\Http\Resources\Json\JsonResource; use Cache; use App\Services\AccountService; +/** + * @property int $id + * @property string|null $name + * @property string $username + */ class DirectoryProfile extends JsonResource { /** diff --git a/app/Http/Resources/ImportStatus.php b/app/Http/Resources/ImportStatus.php index a5178f95b..cd6cf6678 100644 --- a/app/Http/Resources/ImportStatus.php +++ b/app/Http/Resources/ImportStatus.php @@ -6,6 +6,9 @@ use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use App\Services\StatusService; +/** + * @property int $status_id + */ class ImportStatus extends JsonResource { /** diff --git a/app/Http/Resources/MastoApi/Admin/DomainBlockResource.php b/app/Http/Resources/MastoApi/Admin/DomainBlockResource.php index eeb3ddc09..77ea79d77 100644 --- a/app/Http/Resources/MastoApi/Admin/DomainBlockResource.php +++ b/app/Http/Resources/MastoApi/Admin/DomainBlockResource.php @@ -5,6 +5,15 @@ namespace App\Http\Resources\MastoApi\Admin; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $id + * @property string $domain + * @property bool $banned + * @property bool $unlisted + * @property \Illuminate\Support\Carbon $updated_at + * @property array|null $notes + * @property string|null $limit_reason + */ class DomainBlockResource extends JsonResource { /** diff --git a/app/Http/Resources/MastoApi/FollowedTagResource.php b/app/Http/Resources/MastoApi/FollowedTagResource.php index 3c690d05a..f78010650 100644 --- a/app/Http/Resources/MastoApi/FollowedTagResource.php +++ b/app/Http/Resources/MastoApi/FollowedTagResource.php @@ -7,6 +7,9 @@ use Illuminate\Http\JsonResponse; use Cache; use App\Services\HashtagService; +/** + * @property int $hashtag_id + */ class FollowedTagResource extends JsonResource { /** diff --git a/app/Http/Resources/StoryView.php b/app/Http/Resources/StoryView.php index ca7d78297..bb6dc079a 100644 --- a/app/Http/Resources/StoryView.php +++ b/app/Http/Resources/StoryView.php @@ -6,6 +6,10 @@ use App\Services\AccountService; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $profile_id + * @property \Illuminate\Support\Carbon $created_at + */ class StoryView extends JsonResource { /** diff --git a/app/Http/Resources/UserAppSettingsResource.php b/app/Http/Resources/UserAppSettingsResource.php index 814a8f55c..f7462564f 100644 --- a/app/Http/Resources/UserAppSettingsResource.php +++ b/app/Http/Resources/UserAppSettingsResource.php @@ -5,6 +5,11 @@ namespace App\Http\Resources; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; +/** + * @property int $profile_id + * @property \Illuminate\Support\Carbon $updated_at + * @property array|null $common + */ class UserAppSettingsResource extends JsonResource { diff --git a/app/Models/Group.php b/app/Models/Group.php index 508ed98c0..bb30b3d1a 100644 --- a/app/Models/Group.php +++ b/app/Models/Group.php @@ -9,6 +9,19 @@ use App\Profile; use App\Services\GroupService; use Illuminate\Database\Eloquent\SoftDeletes; +/** + * @property int $id + * @property int $profile_id + * @property string|null $name + * @property bool $is_private + * @property bool $local + * @property string|null $remote_url + * @property array|null $metadata + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property-read bool $is_local + */ class Group extends Model { use HasSnowflakePrimary, HasFactory, SoftDeletes; diff --git a/app/Models/ParentalControls.php b/app/Models/ParentalControls.php index 83d47c18a..f84d17beb 100644 --- a/app/Models/ParentalControls.php +++ b/app/Models/ParentalControls.php @@ -8,6 +8,20 @@ use Illuminate\Database\Eloquent\SoftDeletes; use App\User; use App\Services\AccountService; +/** + * @property int $id + * @property int $parent_id + * @property int $child_id + * @property array|null $permissions + * @property string|null $verify_code + * @property \Illuminate\Support\Carbon|null $email_sent_at + * @property \Illuminate\Support\Carbon|null $email_verified_at + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property-read \App\User $parent + * @property-read \App\User $child + */ class ParentalControls extends Model { use HasFactory, SoftDeletes; diff --git a/app/Profile.php b/app/Profile.php index 758ba311d..600577bc8 100644 --- a/app/Profile.php +++ b/app/Profile.php @@ -10,6 +10,25 @@ use App\Services\FollowerService; use App\Models\ProfileAlias; use App\Avatar; +/** + * @property int $id + * @property int|null $user_id + * @property string $username + * @property string|null $name + * @property string|null $domain + * @property string|null $remote_url + * @property bool $is_private + * @property int $status_count + * @property int $following_count + * @property int $followers_count + * @property \Illuminate\Support\Carbon|null $last_fetched_at + * @property \Illuminate\Support\Carbon|null $last_status_at + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property-read \App\User|null $user + * @property-read \App\Avatar $avatar + */ class Profile extends Model { use HasSnowflakePrimary, SoftDeletes; diff --git a/rector.php b/rector.php new file mode 100644 index 000000000..a54526a6b --- /dev/null +++ b/rector.php @@ -0,0 +1,71 @@ +withPaths([ + __DIR__ . '/app', + __DIR__ . '/bootstrap', + __DIR__ . '/config', + __DIR__ . '/public', + __DIR__ . '/resources', + __DIR__ . '/routes', + __DIR__ . '/tests', + ]) + ->withRules([ + // UNUSED PRIVATE METHODS & PROPERTIES + RemoveUnusedPrivateMethodRector::class, // Remove unused private methods + // RemoveUnusedPrivatePropertyRector::class, // Remove unused private properties + /// RemoveUnusedPromotedPropertyRector::class, // Remove unused promoted properties (PHP 8.0+) + + // UNUSED VARIABLES & ASSIGNMENTS + // RemoveUnusedVariableAssignRector::class, // Remove unused variable assignments + // RemoveJustPropertyFetchForAssignRector::class, // Remove property fetch that's only assigned but never used + /// RemoveUnusedForeachKeyRector::class, // Remove unused foreach keys + + // UNREACHABLE & DEAD CODE + // RemoveUnreachableStatementRector::class, // Remove unreachable statements after return/throw + /// RemoveDeadStmtRector::class, // Remove dead statements + /// RemoveDeadInstanceOfRector::class, // Remove dead instanceof checks + /// RemoveDeadConditionAboveReturnRector::class, // Remove dead conditions above return + /// RemoveDeadLoopRector::class, // Remove loops that never execute + /// RemoveDeadTryCatchRector::class, // Remove try-catch that never catches + + // USELESS ANNOTATIONS + // RemoveUselessParamTagRector::class, // Remove useless @param tags + /// RemoveUselessReturnTagRector::class, // Remove useless @return tags + /// RemoveNonExistingVarAnnotationRector::class, // Remove @var for non-existing variables + + // SIMPLIFY CONDITIONS + /// RemoveAlwaysTrueIfConditionRector::class, // Remove always-true if conditions + /// SimplifyIfElseWithSameContentRector::class, // Simplify if-else with same content + /// RemoveDuplicatedCaseInSwitchRector::class, // Remove duplicated switch cases + + + + // UNNECESSARY OPERATIONS + /// RemoveConcatAutocastRector::class, // Remove unnecessary string concatenation autocasts + /// RecastingRemovalRector::class, // Remove unnecessary type recasting + ]); From 2f570fe5aff8ad3a04234b76db972de3d261d86e Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 13 Nov 2025 10:21:52 +1030 Subject: [PATCH 2/6] Delete rector.php --- rector.php | 71 ------------------------------------------------------ 1 file changed, 71 deletions(-) delete mode 100644 rector.php diff --git a/rector.php b/rector.php deleted file mode 100644 index a54526a6b..000000000 --- a/rector.php +++ /dev/null @@ -1,71 +0,0 @@ -withPaths([ - __DIR__ . '/app', - __DIR__ . '/bootstrap', - __DIR__ . '/config', - __DIR__ . '/public', - __DIR__ . '/resources', - __DIR__ . '/routes', - __DIR__ . '/tests', - ]) - ->withRules([ - // UNUSED PRIVATE METHODS & PROPERTIES - RemoveUnusedPrivateMethodRector::class, // Remove unused private methods - // RemoveUnusedPrivatePropertyRector::class, // Remove unused private properties - /// RemoveUnusedPromotedPropertyRector::class, // Remove unused promoted properties (PHP 8.0+) - - // UNUSED VARIABLES & ASSIGNMENTS - // RemoveUnusedVariableAssignRector::class, // Remove unused variable assignments - // RemoveJustPropertyFetchForAssignRector::class, // Remove property fetch that's only assigned but never used - /// RemoveUnusedForeachKeyRector::class, // Remove unused foreach keys - - // UNREACHABLE & DEAD CODE - // RemoveUnreachableStatementRector::class, // Remove unreachable statements after return/throw - /// RemoveDeadStmtRector::class, // Remove dead statements - /// RemoveDeadInstanceOfRector::class, // Remove dead instanceof checks - /// RemoveDeadConditionAboveReturnRector::class, // Remove dead conditions above return - /// RemoveDeadLoopRector::class, // Remove loops that never execute - /// RemoveDeadTryCatchRector::class, // Remove try-catch that never catches - - // USELESS ANNOTATIONS - // RemoveUselessParamTagRector::class, // Remove useless @param tags - /// RemoveUselessReturnTagRector::class, // Remove useless @return tags - /// RemoveNonExistingVarAnnotationRector::class, // Remove @var for non-existing variables - - // SIMPLIFY CONDITIONS - /// RemoveAlwaysTrueIfConditionRector::class, // Remove always-true if conditions - /// SimplifyIfElseWithSameContentRector::class, // Simplify if-else with same content - /// RemoveDuplicatedCaseInSwitchRector::class, // Remove duplicated switch cases - - - - // UNNECESSARY OPERATIONS - /// RemoveConcatAutocastRector::class, // Remove unnecessary string concatenation autocasts - /// RecastingRemovalRector::class, // Remove unnecessary type recasting - ]); From 9a22a4dbdacc7959e9af3377147dc03127d56f24 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 13 Nov 2025 10:57:21 +1100 Subject: [PATCH 3/6] more properties --- app/Status.php | 26 ++++++++++++++++++++++++++ app/Story.php | 12 ++++++++++++ app/StoryItem.php | 8 ++++++++ tests/Unit/APAnnounceStrategyTest.php | 4 ++++ 4 files changed, 50 insertions(+) diff --git a/app/Status.php b/app/Status.php index 5fe18de4e..2a9311326 100644 --- a/app/Status.php +++ b/app/Status.php @@ -15,6 +15,32 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Str; use Storage; +/** + * @property int $id + * @property int $profile_id + * @property string|null $type + * @property string|null $caption + * @property int|null $in_reply_to_id + * @property int|null $in_reply_to_profile_id + * @property int|null $reblog_of_id + * @property bool $is_nsfw + * @property string|null $scope + * @property string|null $visibility + * @property string|null $cw_summary + * @property bool $comments_disabled + * @property int $likes_count + * @property int $reblogs_count + * @property int $reply_count + * @property bool $local + * @property string|null $place + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property \Illuminate\Support\Carbon|null $edited_at + * @property-read \App\Profile $profile + * @property-read \Illuminate\Database\Eloquent\Collection $media + * @property-read \Illuminate\Database\Eloquent\Collection $mentions + */ class Status extends Model { use HasSnowflakePrimary, SoftDeletes; diff --git a/app/Story.php b/app/Story.php index 2c4f470d3..ce8113a79 100644 --- a/app/Story.php +++ b/app/Story.php @@ -7,6 +7,18 @@ use Auth; use Illuminate\Database\Eloquent\Model; use Storage; +/** + * @property int $id + * @property int $profile_id + * @property string|null $path + * @property string|null $bearcap_token + * @property array|null $story + * @property int $view_count + * @property \Illuminate\Support\Carbon|null $expires_at + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Profile $profile + */ class Story extends Model { use HasSnowflakePrimary; diff --git a/app/StoryItem.php b/app/StoryItem.php index 0ac345973..95469394a 100644 --- a/app/StoryItem.php +++ b/app/StoryItem.php @@ -6,6 +6,14 @@ use Illuminate\Database\Eloquent\Model; use Pixelfed\Snowflake\HasSnowflakePrimary; use Storage; +/** + * @property int $id + * @property int $story_id + * @property string|null $media_path + * @property \Illuminate\Support\Carbon|null $expires_at + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + */ class StoryItem extends Model { use HasSnowflakePrimary; diff --git a/tests/Unit/APAnnounceStrategyTest.php b/tests/Unit/APAnnounceStrategyTest.php index 7a0f3ccb5..324b52cd4 100644 --- a/tests/Unit/APAnnounceStrategyTest.php +++ b/tests/Unit/APAnnounceStrategyTest.php @@ -8,6 +8,10 @@ use Tests\TestCase; class APAnnounceStrategyTest extends TestCase { + private array $invalid; + private array $mastodon; + private array $pleroma; + public function setUp(): void { parent::setUp(); From 815460cd26067aa8478bb8e3f92e87295d8b9061 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 13 Nov 2025 10:59:21 +1100 Subject: [PATCH 4/6] 2fa_enabled needs to be refactored --- app/Http/Resources/AdminUser.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/AdminUser.php b/app/Http/Resources/AdminUser.php index 5bf41f307..dbdba03bc 100644 --- a/app/Http/Resources/AdminUser.php +++ b/app/Http/Resources/AdminUser.php @@ -13,7 +13,6 @@ use Illuminate\Http\Resources\Json\JsonResource; * @property bool $is_admin * @property string $email * @property \Illuminate\Support\Carbon|null $email_verified_at - * @property bool $2fa_enabled * @property string|null $register_source * @property string|null $app_register_ip * @property bool $has_interstitial @@ -22,6 +21,10 @@ use Illuminate\Http\Resources\Json\JsonResource; */ class AdminUser extends JsonResource { + /** + * @phpstan-ignore-next-line + */ + private $2fa_enabled; /** * Transform the resource into an array. * From 1b962783d809ff7618d3a6086b122bb0bccd3ca9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 13 Nov 2025 11:06:13 +1100 Subject: [PATCH 5/6] Fix AdminUser.php syntax error - remove invalid property declaration --- app/Http/Resources/AdminUser.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/Http/Resources/AdminUser.php b/app/Http/Resources/AdminUser.php index dbdba03bc..93b358f8f 100644 --- a/app/Http/Resources/AdminUser.php +++ b/app/Http/Resources/AdminUser.php @@ -21,10 +21,6 @@ use Illuminate\Http\Resources\Json\JsonResource; */ class AdminUser extends JsonResource { - /** - * @phpstan-ignore-next-line - */ - private $2fa_enabled; /** * Transform the resource into an array. * @@ -43,7 +39,7 @@ class AdminUser extends JsonResource 'is_admin' => (bool) $this->is_admin, 'email' => $this->email, 'email_verified_at' => $this->email_verified_at, - 'two_factor_enabled' => (bool) $this->{'2fa_enabled'}, + 'two_factor_enabled' => (bool) $this->{'2fa_enabled'}, // @phpstan-ignore-line 'register_source' => $this->register_source, 'app_register_ip' => $this->app_register_ip, 'has_interstitial' => (bool) $this->has_interstitial, From 2a5296f58ebba2ea30ddaa736a952fc47bb5ba38 Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 13 Nov 2025 12:10:57 +1030 Subject: [PATCH 6/6] Update AdminUser.php --- app/Http/Resources/AdminUser.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/AdminUser.php b/app/Http/Resources/AdminUser.php index 93b358f8f..5bf41f307 100644 --- a/app/Http/Resources/AdminUser.php +++ b/app/Http/Resources/AdminUser.php @@ -13,6 +13,7 @@ use Illuminate\Http\Resources\Json\JsonResource; * @property bool $is_admin * @property string $email * @property \Illuminate\Support\Carbon|null $email_verified_at + * @property bool $2fa_enabled * @property string|null $register_source * @property string|null $app_register_ip * @property bool $has_interstitial @@ -39,7 +40,7 @@ class AdminUser extends JsonResource 'is_admin' => (bool) $this->is_admin, 'email' => $this->email, 'email_verified_at' => $this->email_verified_at, - 'two_factor_enabled' => (bool) $this->{'2fa_enabled'}, // @phpstan-ignore-line + 'two_factor_enabled' => (bool) $this->{'2fa_enabled'}, 'register_source' => $this->register_source, 'app_register_ip' => $this->app_register_ip, 'has_interstitial' => (bool) $this->has_interstitial,