Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions phpstan-baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,15 +166,15 @@
'path' => __DIR__ . '/src/Collectors/Auth.php',
];
$ignoreErrors[] = [
'message' => '#^Cannot access property \\$id on array\\<string, string\\>\\|object\\.$#',
'message' => '#^Cannot access property \\$expires on array\\<string, string\\>\\|object\\.$#',
'identifier' => 'property.nonObject',
'count' => 9,
'count' => 3,
'path' => __DIR__ . '/src/Commands/Hmac.php',
];
$ignoreErrors[] = [
'message' => '#^Cannot access property \\$expires on array\\<string, string\\>\\|object\\.$#',
'message' => '#^Cannot access property \\$id on array\\<string, string\\>\\|object\\.$#',
'identifier' => 'property.nonObject',
'count' => 3,
'count' => 9,
'path' => __DIR__ . '/src/Commands/Hmac.php',
];
$ignoreErrors[] = [
Expand Down Expand Up @@ -492,6 +492,13 @@
'count' => 6,
'path' => __DIR__ . '/tests/Unit/Authentication/JWT/JWTManagerTest.php',
];
$ignoreErrors[] = [
'message' => '#^Call to deprecated method __construct\\(\\) of class CodeIgniter\\\\HTTP\\\\Response\\:
4\\.5\\.0 The param \\$config is no longer used\\.$#',
'identifier' => 'method.deprecated',
'count' => 3,
'path' => __DIR__ . '/tests/Unit/PwnedValidatorTest.php',
];
$ignoreErrors[] = [
'message' => '#^Call to an undefined method CodeIgniter\\\\Shield\\\\Models\\\\UserModel\\:\\:getLastQuery\\(\\)\\.$#',
'identifier' => 'method.notFound',
Expand Down
4 changes: 4 additions & 0 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ parameters:
disallowedImplicitArrayCreation: true
disallowedShortTernary: true
matchingInheritedMethodNames: true
ignoreErrors:
- identifier: function.internal
- identifier: return.internalClass
- identifier: staticMethod.internal
10 changes: 0 additions & 10 deletions rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,8 @@
use Rector\EarlyReturn\Rector\Return_\PreparedValueToEarlyReturnRector;
use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector;
use Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector;
use Rector\Php81\Rector\ClassMethod\NewInInitializerRector;
use Rector\PHPUnit\AnnotationsToAttributes\Rector\Class_\AnnotationWithValueToAttributeRector;
use Rector\PHPUnit\CodeQuality\Rector\Class_\YieldDataProviderRector;
use Rector\PHPUnit\CodeQuality\Rector\MethodCall\AssertCountWithZeroToAssertEmptyRector;
use Rector\PHPUnit\CodeQuality\Rector\MethodCall\AssertEmptyNullableObjectToAssertInstanceofRector;
use Rector\PHPUnit\Set\PHPUnitSetList;
use Rector\Privatization\Rector\Property\PrivatizeFinalClassPropertyRector;
Expand Down Expand Up @@ -135,15 +133,7 @@
__DIR__ . '/src/Commands/Setup.php',
],

// Ignore for some existing classes to prevent BC break
NewInInitializerRector::class => [
__DIR__ . '/src/Authentication/JWT/JWSEncoder.php',
__DIR__ . '/src/Authentication/JWT/JWSDecoder.php',
__DIR__ . '/src/Authentication/JWTManager.php',
],

// Ignore some PHPUnit rules
AssertCountWithZeroToAssertEmptyRector::class,
AssertEmptyNullableObjectToAssertInstanceofRector::class,
]);

Expand Down
7 changes: 3 additions & 4 deletions src/Authentication/Authenticators/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -824,10 +824,9 @@ public function logout(): void
/** @var \CodeIgniter\Session\Session $session */
$session = session();
$sessionData = $session->get();
if (isset($sessionData)) {
foreach (array_keys($sessionData) as $key) {
$session->remove($key);
}

foreach (array_keys($sessionData) as $key) {
$session->remove($key);
}

// Regenerate the session ID for a touch of added safety.
Expand Down
8 changes: 7 additions & 1 deletion src/Views/email_2fa_show.php
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<?php

use CodeIgniter\Shield\Entities\User;

?>

<?= $this->extend(config('Auth')->views['layout']) ?>

<?= $this->section('title') ?><?= lang('Auth.email2FATitle') ?> <?= $this->endSection() ?>
Expand All @@ -22,7 +28,7 @@
<div class="mb-2">
<input type="email" class="form-control" name="email"
inputmode="email" autocomplete="email" placeholder="<?= lang('Auth.email') ?>"
<?php /** @var CodeIgniter\Shield\Entities\User $user */ ?>
<?php /** @var User $user */ ?>
value="<?= old('email', $user->email) ?>" required>
</div>

Expand Down
8 changes: 8 additions & 0 deletions tests/Commands/UserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,7 @@ public function testAddgroup(): void

$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user10@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$this->assertTrue($user->inGroup('admin'));
}

Expand Down Expand Up @@ -632,6 +633,7 @@ public function testAddgroupCancel(): void

$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user10@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$this->assertFalse($user->inGroup('admin'));
}

Expand All @@ -644,6 +646,7 @@ public function testRemovegroup(): void
]);
$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$user->addGroup('admin');
$this->assertTrue($user->inGroup('admin'));

Expand All @@ -658,6 +661,7 @@ public function testRemovegroup(): void

$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$this->assertFalse($user->inGroup('admin'));
}

Expand All @@ -670,6 +674,7 @@ public function testRemovegroupWithInvalidGroup(): void
]);
$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$user->addGroup('admin');
$this->assertTrue($user->inGroup('admin'));

Expand All @@ -684,6 +689,7 @@ public function testRemovegroupWithInvalidGroup(): void

$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$this->assertTrue($user->inGroup('admin'));
}

Expand All @@ -696,6 +702,7 @@ public function testRemovegroupCancel(): void
]);
$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$user->addGroup('admin');
$this->assertTrue($user->inGroup('admin'));

Expand All @@ -710,6 +717,7 @@ public function testRemovegroupCancel(): void

$users = model(UserModel::class);
$user = $users->findByCredentials(['email' => 'user11@example.com']);
$this->assertInstanceOf(UserEntity::class, $user);
$this->assertTrue($user->inGroup('admin'));
}
}
2 changes: 2 additions & 0 deletions tests/Unit/UserModelTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,8 @@ public function testUpdateUserArrayWithUserDataToUpdate(): void

$user = $users->findByCredentials(['email' => 'foo@bar.com']);

$this->assertInstanceOf(User::class, $user);

$user->username = 'bar';
$user->email = 'bar@bar.com';
$user->active = true;
Expand Down
Loading