From 739eeb94dae484af7e8fef5388dc6140e021e5dd Mon Sep 17 00:00:00 2001 From: MGatner Date: Wed, 27 Apr 2022 15:04:47 +0000 Subject: [PATCH] Apply Rector --- rector.php | 10 +++--- src/AuthTrait.php | 12 +++---- src/Authentication/AuthenticationBase.php | 4 +-- .../Passwords/NothingPersonalValidator.php | 9 +++--- .../Passwords/PwnedValidator.php | 7 +---- src/Authorization/FlatAuthorization.php | 8 ++--- src/Authorization/GroupModel.php | 10 +++--- src/Config/Routes.php | 2 ++ tests/authorization/FlatAuthorizationTest.php | 7 ++--- tests/controllers/RegisterTest.php | 25 +++++++++------ tests/unit/AuthTestTraitTest.php | 3 +- tests/unit/AuthenticationBaseLoginTest.php | 15 +++------ tests/unit/CompositionValidatorTest.php | 8 ++--- tests/unit/DictionaryValidatorTest.php | 8 ++--- tests/unit/NothingPersonalValidatorTest.php | 31 +++++++++---------- tests/unit/UserEntityTest.php | 7 ++--- 16 files changed, 75 insertions(+), 91 deletions(-) diff --git a/rector.php b/rector.php index 4ab5f02..fdd2cd3 100644 --- a/rector.php +++ b/rector.php @@ -74,6 +74,8 @@ // Are there files or rules you need to skip? $parameters->set(Option::SKIP, [ + __DIR__ . '/src/Config/Auth.php', + __DIR__ . '/src/Language', __DIR__ . '/src/Views', JsonThrowOnErrorRector::class, @@ -123,8 +125,8 @@ $services->set(MakeInheritedMethodVisibilitySameAsParentRector::class); $services->set(SimplifyEmptyArrayCheckRector::class); $services->set(NormalizeNamespaceByPSR4ComposerAutoloadRector::class); - $services->set(TypedPropertyRector::class) - ->configure([ - TypedPropertyRector::INLINE_PUBLIC => true, - ]); + // $services->set(TypedPropertyRector::class) + // ->configure([ + // TypedPropertyRector::INLINE_PUBLIC => true, + // ]); }; diff --git a/src/AuthTrait.php b/src/AuthTrait.php index 792b71f..7473279 100644 --- a/src/AuthTrait.php +++ b/src/AuthTrait.php @@ -92,10 +92,8 @@ public function restrictToGroups($groups, $uri = null) { $this->setupAuthClasses(); - if ($this->authenticate->check()) { - if ($this->authorize->inGroup($groups, $this->authenticate->id())) { - return true; - } + if ($this->authenticate->check() && $this->authorize->inGroup($groups, $this->authenticate->id())) { + return true; } if (method_exists($this, 'setMessage')) { @@ -129,10 +127,8 @@ public function restrictWithPermissions($permissions, $uri = null) { $this->setupAuthClasses(); - if ($this->authenticate->check()) { - if ($this->authorize->hasPermission($permissions, $this->authenticate->id())) { - return true; - } + if ($this->authenticate->check() && $this->authorize->hasPermission($permissions, $this->authenticate->id())) { + return true; } if (method_exists($this, 'setMessage')) { diff --git a/src/Authentication/AuthenticationBase.php b/src/Authentication/AuthenticationBase.php index 03e9cdb..c415ffb 100644 --- a/src/Authentication/AuthenticationBase.php +++ b/src/Authentication/AuthenticationBase.php @@ -105,7 +105,7 @@ public function login(?User $user = null, bool $remember = false): bool // We'll give a 20% chance to need to do a purge since we // don't need to purge THAT often, it's just a maintenance issue. // to keep the table from getting out of control. - if (mt_rand(1, 100) < 20) { + if (random_int(1, 100) < 20) { $this->loginModel->purgeOldRememberTokens(); } @@ -159,7 +159,7 @@ public function logout() // Destroy the session data - but ensure a session is still // available for flash messages, etc. if (isset($_SESSION)) { - foreach ($_SESSION as $key => $value) { + foreach (array_keys($_SESSION) as $key) { $_SESSION[$key] = null; unset($_SESSION[$key]); } diff --git a/src/Authentication/Passwords/NothingPersonalValidator.php b/src/Authentication/Passwords/NothingPersonalValidator.php index 2a4b724..05e16ad 100644 --- a/src/Authentication/Passwords/NothingPersonalValidator.php +++ b/src/Authentication/Passwords/NothingPersonalValidator.php @@ -84,11 +84,10 @@ protected function isNotPersonal($password, $user) // Get any other "personal" fields defined in config $personalFields = $this->config->personalFields; - if (! empty($personalFields)) { - foreach ($personalFields as $value) { - if (! empty($user->{$value})) { - $needles[] = \strtolower($user->{$value}); - } + + foreach ($personalFields as $value) { + if (! empty($user->{$value})) { + $needles[] = \strtolower($user->{$value}); } } diff --git a/src/Authentication/Passwords/PwnedValidator.php b/src/Authentication/Passwords/PwnedValidator.php index 126b4ef..bc024b7 100644 --- a/src/Authentication/Passwords/PwnedValidator.php +++ b/src/Authentication/Passwords/PwnedValidator.php @@ -57,12 +57,7 @@ public function check(string $password, ?Entity $user = null): bool $startPos += 36; // right after the delimiter (:) $endPos = strpos($range, "\r\n", $startPos); - if ($endPos !== false) { - $hits = (int) substr($range, $startPos, $endPos - $startPos); - } else { - // match is the last item in the range which does not end with "\r\n" - $hits = (int) substr($range, $startPos); - } + $hits = $endPos !== false ? (int) substr($range, $startPos, $endPos - $startPos) : (int) substr($range, $startPos); $wording = $hits > 1 ? lang('Auth.errorPasswordPwnedDatabases') : lang('Auth.errorPasswordPwnedDatabase'); $this->error = lang('Auth.errorPasswordPwned', [$password, $hits, $wording]); diff --git a/src/Authorization/FlatAuthorization.php b/src/Authorization/FlatAuthorization.php index 72a149c..46d0c99 100644 --- a/src/Authorization/FlatAuthorization.php +++ b/src/Authorization/FlatAuthorization.php @@ -155,12 +155,12 @@ public function hasPermission($permission, int $userId) } // First check the permission model. If that exists, then we're golden. - if ($this->permissionModel->doesUserHavePermission($userId, (int) $permissionId)) { + if ($this->permissionModel->doesUserHavePermission($userId, $permissionId)) { return true; } // Still here? Then we have one last check to make - any user private permissions. - return $this->doesUserHavePermission($userId, (int) $permissionId); + return $this->doesUserHavePermission($userId, $permissionId); } /** @@ -191,7 +191,7 @@ public function addUserToGroup(int $userid, $group) return null; } - if (! $this->groupModel->addUserToGroup($userid, (int) $groupId)) { + if (! $this->groupModel->addUserToGroup($userid, $groupId)) { $this->error = $this->groupModel->errors(); return false; @@ -629,7 +629,7 @@ public function updatePermission(int $id, string $name, string $description = '' $data['description'] = $description; } - if (! $this->permissionModel->update((int) $id, $data)) { + if (! $this->permissionModel->update($id, $data)) { $this->error = $this->permissionModel->errors(); return false; diff --git a/src/Authorization/GroupModel.php b/src/Authorization/GroupModel.php index 71c43b8..6aa3044 100644 --- a/src/Authorization/GroupModel.php +++ b/src/Authorization/GroupModel.php @@ -36,8 +36,8 @@ public function addUserToGroup(int $userId, int $groupId) cache()->delete("{$userId}_permissions"); $data = [ - 'user_id' => (int) $userId, - 'group_id' => (int) $groupId, + 'user_id' => $userId, + 'group_id' => $groupId, ]; return (bool) $this->db->table('auth_groups_users')->insert($data); @@ -74,7 +74,7 @@ public function removeUserFromAllGroups(int $userId) cache()->delete("{$userId}_permissions"); return $this->db->table('auth_groups_users') - ->where('user_id', (int) $userId) + ->where('user_id', $userId) ->delete(); } @@ -158,8 +158,8 @@ public function getPermissionsForGroup(int $groupId): array public function addPermissionToGroup(int $permissionId, int $groupId) { $data = [ - 'permission_id' => (int) $permissionId, - 'group_id' => (int) $groupId, + 'permission_id' => $permissionId, + 'group_id' => $groupId, ]; return $this->db->table('auth_groups_permissions')->insert($data); diff --git a/src/Config/Routes.php b/src/Config/Routes.php index 39c43ca..beab979 100644 --- a/src/Config/Routes.php +++ b/src/Config/Routes.php @@ -1,5 +1,7 @@ group('', ['namespace' => 'Myth\Auth\Controllers'], static function ($routes) { // Login/out diff --git a/tests/authorization/FlatAuthorizationTest.php b/tests/authorization/FlatAuthorizationTest.php index bf6b3d7..f02145c 100644 --- a/tests/authorization/FlatAuthorizationTest.php +++ b/tests/authorization/FlatAuthorizationTest.php @@ -28,10 +28,7 @@ final class FlatAuthorizationTest extends AuthTestCase */ protected $permissions; - /** - * @var FlatAuthorization - */ - protected $auth; + protected FlatAuthorization $auth; protected function setUp(): void { @@ -548,7 +545,7 @@ public function testGroupPermissions() $found = $this->auth->groupPermissions($group->id); - $this->assertTrue(isset($found[$perm->id])); + $this->assertArrayHasKey($perm->id, $found); $this->assertSame((array) $perm, $found[$perm->id]); } } diff --git a/tests/controllers/RegisterTest.php b/tests/controllers/RegisterTest.php index be8fe13..e8dc728 100644 --- a/tests/controllers/RegisterTest.php +++ b/tests/controllers/RegisterTest.php @@ -1,8 +1,13 @@ ruleSets[] = \Myth\Auth\Authentication\Passwords\ValidationRules::class; + $vConfig = new Validation(); + $vConfig->ruleSets[] = ValidationRules::class; $vConfig->ruleSets = array_reverse($vConfig->ruleSets); - \CodeIgniter\Config\Factories::injectMock('Config', 'Validation', $vConfig); + Factories::injectMock('Config', 'Validation', $vConfig); // Make sure our routes are mapped $routes = service('routes'); @@ -47,9 +52,9 @@ public function testRegisterDisplaysForm() public function testAttemptRegisterDisabled() { - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->allowRegistration = false; - \CodeIgniter\Config\Factories::injectMock('Config', 'Auth', $config); + Factories::injectMock('Config', 'Auth', $config); $result = $this->withUri(site_url('register')) ->controller(AuthController::class) @@ -61,9 +66,9 @@ public function testAttemptRegisterDisabled() public function testAttemptRegisterValidationErrors() { - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->allowRegistration = true; - \CodeIgniter\Config\Factories::injectMock('Config', 'Auth', $config); + Factories::injectMock('Config', 'Auth', $config); $result = $this->withUri(site_url('register')) ->controller(AuthController::class) @@ -93,7 +98,7 @@ public function testAttemptRegisterCreatesUser() // don't require activation for this... $config = config('Auth'); $config->requireActivation = null; - \CodeIgniter\Config\Factories::injectMock('Config', 'Auth', $config); + Factories::injectMock('Config', 'Auth', $config); $result = $this->withUri(site_url('register')) ->withRequest($request) @@ -132,7 +137,7 @@ public function testAttemptRegisterCreatesUserWithDefaultGroup() $config = config('Auth'); $config->requireActivation = null; $config->defaultUserGroup = $group->name; - \CodeIgniter\Config\Factories::injectMock('Config', 'Auth', $config); + Factories::injectMock('Config', 'Auth', $config); $result = $this->withUri(site_url('register')) ->withRequest($request) @@ -147,7 +152,7 @@ public function testAttemptRegisterCreatesUserWithDefaultGroup() 'email' => $data['email'], ]); - $users = new \Myth\Auth\Models\UserModel(); + $users = new UserModel(); $user = $users->where('username', $data['username'])->first(); $this->seeInDatabase('auth_groups_users', [ 'user_id' => $user->id, diff --git a/tests/unit/AuthTestTraitTest.php b/tests/unit/AuthTestTraitTest.php index 8750137..b1a6227 100644 --- a/tests/unit/AuthTestTraitTest.php +++ b/tests/unit/AuthTestTraitTest.php @@ -1,5 +1,6 @@ loginModel = m::mock(LoginModel::class); - $this->auth = new AuthenticationBase(new \Myth\Auth\Config\Auth()); + $this->auth = new AuthenticationBase(new Auth()); $this->auth->setLoginModel($this->loginModel); } diff --git a/tests/unit/CompositionValidatorTest.php b/tests/unit/CompositionValidatorTest.php index d21201c..34f2340 100644 --- a/tests/unit/CompositionValidatorTest.php +++ b/tests/unit/CompositionValidatorTest.php @@ -2,22 +2,20 @@ use CodeIgniter\Test\CIUnitTestCase; use Myth\Auth\Authentication\Passwords\CompositionValidator; +use Myth\Auth\Config\Auth; /** * @internal */ final class CompositionValidatorTest extends CIUnitTestCase { - /** - * @var CompositionValidator - */ - protected $validator; + protected CompositionValidator $validator; protected function setUp(): void { parent::setUp(); - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->minimumPasswordLength = 8; $this->validator = new CompositionValidator(); diff --git a/tests/unit/DictionaryValidatorTest.php b/tests/unit/DictionaryValidatorTest.php index 39b10e8..64e2056 100644 --- a/tests/unit/DictionaryValidatorTest.php +++ b/tests/unit/DictionaryValidatorTest.php @@ -2,22 +2,20 @@ use CodeIgniter\Test\CIUnitTestCase; use Myth\Auth\Authentication\Passwords\DictionaryValidator; +use Myth\Auth\Config\Auth; /** * @internal */ final class DictionaryValidatorTest extends CIUnitTestCase { - /** - * @var DictionaryValidator - */ - protected $validator; + protected DictionaryValidator $validator; protected function setUp(): void { parent::setUp(); - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $this->validator = new DictionaryValidator(); $this->validator->setConfig($config); diff --git a/tests/unit/NothingPersonalValidatorTest.php b/tests/unit/NothingPersonalValidatorTest.php index 21faa06..e395a70 100644 --- a/tests/unit/NothingPersonalValidatorTest.php +++ b/tests/unit/NothingPersonalValidatorTest.php @@ -2,22 +2,21 @@ use CodeIgniter\Test\CIUnitTestCase; use Myth\Auth\Authentication\Passwords\NothingPersonalValidator; +use Myth\Auth\Config\Auth; +use Myth\Auth\Entities\User; /** * @internal */ final class NothingPersonalValidatorTest extends CIUnitTestCase { - /** - * @var NothingPersonalValidator - */ - protected $validator; + protected NothingPersonalValidator $validator; protected function setUp(): void { parent::setUp(); - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $this->validator = new NothingPersonalValidator(); $this->validator->setConfig($config); @@ -25,7 +24,7 @@ protected function setUp(): void public function testFalseOnPasswordIsEmail() { - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'email' => 'JoeSmith@example.com', 'username' => 'Joe Smith', @@ -39,7 +38,7 @@ public function testFalseOnPasswordIsEmail() public function testFalseOnPasswordIsUsernameBackwards() { - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'email' => 'JoeSmith@example.com', 'username' => 'Joe Smith', @@ -53,7 +52,7 @@ public function testFalseOnPasswordIsUsernameBackwards() public function testFalseOnPasswordAndUsernameTheSame() { - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'email' => 'vampire@example.com', 'username' => 'Vlad the Impaler', @@ -67,12 +66,12 @@ public function testFalseOnPasswordAndUsernameTheSame() public function testTrueWhenPasswordHasNothingPersonal() { - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->maxSimilarity = 50; $config->personalFields = ['firstname', 'lastname']; $this->validator->setConfig($config); - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'email' => 'jsmith@example.com', 'username' => 'JoeS', @@ -103,14 +102,14 @@ public function testTrueWhenPasswordHasNothingPersonal() */ public function testIsNotPersonalFalsePositivesCaughtByIsNotSimilar($password) { - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'username' => 'CaptainJoe', 'email' => 'JosephSmith@example.com', ] ); - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->maxSimilarity = 50; $this->validator->setConfig($config); @@ -146,12 +145,12 @@ public function passwordProvider() */ public function testConfigPersonalFieldsValues($firstName, $lastName, $expected) { - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->maxSimilarity = 66; $config->personalFields = ['firstname', 'lastname']; $this->validator->setConfig($config); - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'username' => 'Vlad the Impaler', 'email' => 'vampire@example.com', @@ -189,11 +188,11 @@ public function testMaxSimilarityZeroTurnsOffSimilarityCalculation( $maxSimilarity, $expected ) { - $config = new \Myth\Auth\Config\Auth(); + $config = new Auth(); $config->maxSimilarity = $maxSimilarity; $this->validator->setConfig($config); - $user = new \Myth\Auth\Entities\User( + $user = new User( [ 'username' => 'CaptainJoe', 'email' => 'joseph@example.com', diff --git a/tests/unit/UserEntityTest.php b/tests/unit/UserEntityTest.php index 3f9e8a0..738f286 100644 --- a/tests/unit/UserEntityTest.php +++ b/tests/unit/UserEntityTest.php @@ -12,10 +12,7 @@ */ final class UserEntityTest extends AuthTestCase { - /** - * @var User - */ - protected $user; + protected User $user; protected function setUp(): void { @@ -47,6 +44,6 @@ public function testGetPermissionSuccess() $model->addPermissionToUser($perm->id, $user->id); - $this->assertTrue(in_array($perm->name, $user->getPermissions(), true)); + $this->assertContains($perm->name, $user->getPermissions()); } }