diff --git a/.scrutinizer.yml b/.scrutinizer.yml index eb183ae..c51da33 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -3,6 +3,8 @@ build: environment: mongodb: true selenium: true + php: + version: 8.1 tests: override: - diff --git a/composer.json b/composer.json index 11269e1..a8341a1 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "name": "mostafamaklad/laravel-permission-mongodb", "description": "Permission handling for Laravel 5.2 and up using mongodb", + "version": "dev-master", "keywords": [ "laravel", "security", @@ -31,15 +32,15 @@ ], "require": { "php": "^8.1", - "illuminate/auth": "^10.0", - "illuminate/container": "^10.0", - "illuminate/contracts": "^10.0", - "mongodb/laravel-mongodb": "^3.9" + "illuminate/auth": "^11.0", + "illuminate/container": "^11.0", + "illuminate/contracts": "^11.0", + "mongodb/laravel-mongodb": "^4.6" }, "require-dev": { "monolog/monolog": "^3.2", - "orchestra/testbench": "^8.0", - "phpunit/phpunit": "^9.5.10", + "orchestra/testbench": "^9.0", + "phpunit/phpunit": "^10.0", "squizlabs/php_codesniffer": "^3.7" }, "autoload": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index cc7ec4c..478fc00 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,18 +1,6 @@ - + - - src/ - @@ -27,4 +15,9 @@ + + + src/ + + diff --git a/src/Models/Permission.php b/src/Models/Permission.php index b23f4dd..523f2b6 100644 --- a/src/Models/Permission.php +++ b/src/Models/Permission.php @@ -3,7 +3,6 @@ namespace Maklad\Permission\Models; use Illuminate\Support\Collection; -use Jenssegers\Mongodb\Eloquent\Model; use Maklad\Permission\Contracts\PermissionInterface; use Maklad\Permission\Exceptions\PermissionAlreadyExists; use Maklad\Permission\Exceptions\PermissionDoesNotExist; @@ -12,6 +11,7 @@ use Maklad\Permission\PermissionRegistrar; use Maklad\Permission\Traits\HasRoles; use Maklad\Permission\Traits\RefreshesPermissionCache; +use MongoDB\Laravel\Eloquent\Model; use ReflectionException; use function app; diff --git a/src/Models/Role.php b/src/Models/Role.php index ac1c76e..b2a7964 100644 --- a/src/Models/Role.php +++ b/src/Models/Role.php @@ -3,7 +3,6 @@ namespace Maklad\Permission\Models; use Illuminate\Database\Eloquent\Builder; -use Jenssegers\Mongodb\Eloquent\Model; use Maklad\Permission\Contracts\PermissionInterface; use Maklad\Permission\Contracts\RoleInterface; use Maklad\Permission\Exceptions\GuardDoesNotMatch; @@ -13,6 +12,7 @@ use Maklad\Permission\Helpers; use Maklad\Permission\Traits\HasPermissions; use Maklad\Permission\Traits\RefreshesPermissionCache; +use MongoDB\Laravel\Eloquent\Model; use ReflectionException; use function is_string; diff --git a/src/Traits/HasPermissions.php b/src/Traits/HasPermissions.php index a373f5d..7fd83a5 100644 --- a/src/Traits/HasPermissions.php +++ b/src/Traits/HasPermissions.php @@ -3,14 +3,14 @@ namespace Maklad\Permission\Traits; use Illuminate\Support\Collection; -use Jenssegers\Mongodb\Eloquent\Builder; -use Jenssegers\Mongodb\Eloquent\Model; use Maklad\Permission\Contracts\PermissionInterface; use Maklad\Permission\Contracts\PermissionInterface as Permission; use Maklad\Permission\Exceptions\GuardDoesNotMatch; use Maklad\Permission\Guard; use Maklad\Permission\Helpers; use Maklad\Permission\PermissionRegistrar; +use MongoDB\Laravel\Eloquent\Model; +use MongoDB\Laravel\Eloquent\Builder; use ReflectionException; use function collect; use function is_array; diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index dfb0421..4ea45ec 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -3,12 +3,12 @@ namespace Maklad\Permission\Traits; use Illuminate\Support\Collection; -use Jenssegers\Mongodb\Eloquent\Builder; -use Jenssegers\Mongodb\Eloquent\Model; -use Jenssegers\Mongodb\Relations\BelongsToMany; use Maklad\Permission\Contracts\RoleInterface as Role; use Maklad\Permission\Helpers; use Maklad\Permission\PermissionRegistrar; +use MongoDB\Laravel\Eloquent\Model; +use MongoDB\Laravel\Eloquent\Builder; +use MongoDB\Laravel\Relations\BelongsToMany; use ReflectionException; use function collect; diff --git a/tests/Admin.php b/tests/Admin.php index 297891d..e6fa064 100644 --- a/tests/Admin.php +++ b/tests/Admin.php @@ -6,8 +6,8 @@ use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Foundation\Auth\Access\Authorizable; -use Jenssegers\Mongodb\Eloquent\Model; use Maklad\Permission\Traits\HasRoles; +use MongoDB\Laravel\Eloquent\Model; class Admin extends Model implements AuthorizableContract, AuthenticatableContract { diff --git a/tests/HasPermissionsTest.php b/tests/HasPermissionsTest.php index 1817c65..fa986c8 100644 --- a/tests/HasPermissionsTest.php +++ b/tests/HasPermissionsTest.php @@ -6,6 +6,7 @@ use Maklad\Permission\Exceptions\PermissionDoesNotExist; use Maklad\Permission\Models\Permission; use Maklad\Permission\Models\Role; +use Monolog\Level; use Monolog\Logger; class HasPermissionsTest extends TestCase @@ -34,7 +35,7 @@ public function it_throws_an_exception_when_assigning_a_permission_that_does_not $this->testUser->givePermissionTo('permission-does-not-exist'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('permission-does-not-exist', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -53,7 +54,7 @@ public function it_throws_an_exception_when_assigning_a_permission_to_a_user_fro $this->testUser->givePermissionTo($this->testAdminPermission); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -327,7 +328,7 @@ public function it_throws_an_exception_when_the_permission_does_not_exist() $this->testUser->hasPermissionTo('does-not-exist'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('does-not-exist', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -346,7 +347,7 @@ public function it_throws_an_exception_when_the_permission_does_not_exist_for_th $this->testUser->hasPermissionTo('admin-permission'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('admin-permission', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } diff --git a/tests/HasRolesTest.php b/tests/HasRolesTest.php index 1085b4a..a04d258 100644 --- a/tests/HasRolesTest.php +++ b/tests/HasRolesTest.php @@ -5,6 +5,7 @@ use Maklad\Permission\Exceptions\GuardDoesNotMatch; use Maklad\Permission\Exceptions\RoleDoesNotExist; use Maklad\Permission\Models\Role; +use Monolog\Level; use Monolog\Logger; class HasRolesTest extends TestCase @@ -73,7 +74,7 @@ public function it_throws_an_exception_when_assigning_a_role_that_does_not_exist $this->testUser->assignRole('evil-emperor'); } finally { $message = $this->helpers->getRoleDoesNotExistMessage('evil-emperor', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -92,7 +93,7 @@ public function it_can_only_assign_roles_from_the_correct_guard() $this->testUser->assignRole('testAdminRole'); } finally { $message = $this->helpers->getRoleDoesNotExistMessage('testAdminRole', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -111,7 +112,7 @@ public function it_throws_an_exception_when_assigning_a_role_from_a_different_gu $this->testUser->assignRole($this->testAdminRole); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -176,7 +177,7 @@ public function it_throws_an_exception_when_syncing_a_role_from_another_guard() $this->testUser->syncRoles('testRole', $this->testAdminRole); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } diff --git a/tests/MiddlewareTest.php b/tests/MiddlewareTest.php index d46496a..1662fde 100644 --- a/tests/MiddlewareTest.php +++ b/tests/MiddlewareTest.php @@ -8,6 +8,7 @@ use Maklad\Permission\Exceptions\UnauthorizedException; use Maklad\Permission\Middlewares\PermissionMiddleware; use Maklad\Permission\Middlewares\RoleMiddleware; +use Monolog\Level; use Monolog\Logger; class MiddlewareTest extends TestCase @@ -41,7 +42,7 @@ public function a_guest_cannot_access_a_route_protected_by_the_role_middleware() ); $message = $this->helpers->getUserNotLoggedINMessage(); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } @@ -109,7 +110,7 @@ public function a_user_cannot_access_a_route_protected_by_the_role_middleware_if config('permission.display_permission_in_exception', $show_permission); $message = $this->helpers->getUnauthorizedRoleMessage('testRole2'); $this->assertShowPermission($message, 'testRole2'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -138,7 +139,7 @@ public function a_user_cannot_access_a_route_protected_by_role_middleware_if_hav $message = $this->helpers->getUnauthorizedRoleMessage('testRole, testRole2'); $this->assertShowPermission($message, 'testRole'); $this->assertShowPermission($message, 'testRole2'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -166,7 +167,7 @@ public function a_user_cannot_access_a_route_protected_by_role_middleware_if_rol config('permission.display_permission_in_exception', $show_permission); $message = $this->helpers->getUnauthorizedRoleMessage('test'); $this->assertShowPermission($message, 'test'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -188,7 +189,7 @@ public function a_guest_cannot_access_a_route_protected_by_the_permission_middle ); $message = $this->helpers->getUserNotLoggedINMessage(); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } @@ -257,7 +258,7 @@ public function a_user_cannot_access_a_route_protected_by_the_permission_middlew config('permission.display_permission_in_exception', $show_permission); $message = $this->helpers->getUnauthorizedPermissionMessage('edit-news'); $this->assertShowPermission($message, 'edit-news'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -286,7 +287,7 @@ public function a_user_cannot_access_a_route_protected_by_permission_middleware_ $message = $this->helpers->getUnauthorizedPermissionMessage('edit-articles, edit-news'); $this->assertShowPermission($message, 'edit-articles'); $this->assertShowPermission($message, 'edit-news'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } diff --git a/tests/PermissionTest.php b/tests/PermissionTest.php index bfa33c0..7947fdd 100644 --- a/tests/PermissionTest.php +++ b/tests/PermissionTest.php @@ -4,6 +4,7 @@ use Maklad\Permission\Exceptions\PermissionAlreadyExists; use Maklad\Permission\Models\Permission; +use Monolog\Level; use Monolog\Logger; class PermissionTest extends TestCase @@ -23,7 +24,7 @@ public function it_throws_an_exception_when_the_permission_already_exists() \app(\config('permission.models.permission'))->create(['name' => 'test-permission']); } finally { $message = $this->helpers->getPermissionAlreadyExistsMessage('test-permission', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } diff --git a/tests/RoleTest.php b/tests/RoleTest.php index 9ff0b00..902c51a 100644 --- a/tests/RoleTest.php +++ b/tests/RoleTest.php @@ -7,6 +7,7 @@ use Maklad\Permission\Exceptions\RoleAlreadyExists; use Maklad\Permission\Models\Permission; use Maklad\Permission\Models\Role; +use Monolog\Level; use Monolog\Logger; class RoleTest extends TestCase @@ -50,7 +51,7 @@ public function it_throws_an_exception_when_the_role_already_exists() \app(\config('permission.models.role'))->create(['name' => 'test-role']); } finally { $message = $this->helpers->getRoleAlreadyExistsMessage('test-role', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -77,7 +78,7 @@ public function it_throws_an_exception_when_given_a_permission_that_does_not_exi $this->testUserRole->givePermissionTo('create-evil-empire'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('create-evil-empire', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -96,7 +97,7 @@ public function it_throws_an_exception_when_given_a_permission_that_belongs_to_a $this->testUserRole->givePermissionTo($this->testAdminPermission); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -147,7 +148,7 @@ public function it_throws_an_exception_when_syncing_permissions_that_do_not_exis $this->testUserRole->syncPermissions('permission-does-not-exist'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('permission-does-not-exist', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -166,7 +167,7 @@ public function it_throws_an_exception_when_syncing_permissions_that_belong_to_a $this->testUserRole->syncPermissions($this->testAdminPermission); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -227,7 +228,7 @@ public function it_throws_an_exception_if_the_permission_does_not_exist() $this->testUserRole->hasPermissionTo('doesnt-exist'); } finally { $message = $this->helpers->getPermissionDoesNotExistMessage('doesnt-exist', 'web'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } @@ -256,7 +257,7 @@ public function it_throws_an_exception_when_a_permission_of_the_wrong_guard_is_p $this->testUserRole->hasPermissionTo($permission); } finally { $message = $this->helpers->getGuardDoesNotMatchMessage(collect(['web']), 'admin'); - $this->assertLogMessage($message, Logger::ALERT); + $this->assertLogMessage($message, Level::Alert); } } } diff --git a/tests/TestCase.php b/tests/TestCase.php index 0495d1a..6acd7dd 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -4,12 +4,12 @@ use Illuminate\Foundation\Application; use Illuminate\Foundation\Testing\DatabaseMigrations; -use Jenssegers\Mongodb\MongodbServiceProvider; use Maklad\Permission\Helpers; use Maklad\Permission\Models\Permission; use Maklad\Permission\Models\Role; use Maklad\Permission\PermissionRegistrar; use Maklad\Permission\PermissionServiceProvider; +use MongoDB\Laravel\MongoDBServiceProvider; use Monolog\Handler\TestHandler; use Orchestra\Testbench\TestCase as Orchestra; @@ -73,7 +73,7 @@ protected function getPackageProviders($app): array { return [ PermissionServiceProvider::class, - MongodbServiceProvider::class, + MongoDBServiceProvider::class, ]; } diff --git a/tests/User.php b/tests/User.php index c62d9a5..26a4ff8 100644 --- a/tests/User.php +++ b/tests/User.php @@ -6,8 +6,8 @@ use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Foundation\Auth\Access\Authorizable; -use Jenssegers\Mongodb\Eloquent\Model; use Maklad\Permission\Traits\HasRoles; +use MongoDB\Laravel\Eloquent\Model; /** * Class User