Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace Spatie\Permission\Tests; use Illuminate\Http\Request; use Illuminate\Http..
Decoded Output download
<?php
namespace Spatie\Permission\Tests; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Gate; use InvalidArgumentException; use Laravel\Passport\Passport; use Spatie\Permission\Exceptions\UnauthorizedException; use Spatie\Permission\Middleware\RoleOrPermissionMiddleware; use Spatie\Permission\Tests\TestModels\UserWithoutHasRoles; class RoleOrPermissionMiddlewareTest extends TestCase { protected $roleOrPermissionMiddleware; protected $usePassport = true; protected function setUp() : void { parent::setUp(); $this->roleOrPermissionMiddleware = new RoleOrPermissionMiddleware(); } public function a_guest_cannot_access_a_route_protected_by_the_role_or_permission_middleware() { $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole")); } public function a_user_can_access_a_route_protected_by_permission_or_role_middleware_if_has_this_permission_or_role() { Auth::login($this->testUser); $this->testUser->assignRole("testRole"); $this->testUser->givePermissionTo("edit-articles"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-news|edit-articles")); $this->testUser->removeRole("testRole"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-articles")); $this->testUser->revokePermissionTo("edit-articles"); $this->testUser->assignRole("testRole"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-articles")); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, array("testRole", "edit-articles"))); } public function a_client_can_access_a_route_protected_by_permission_or_role_middleware_if_has_this_permission_or_role() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("requires laravel >= 9"); } Passport::actingAsClient($this->testClient, array("*")); $this->testClient->assignRole("clientRole"); $this->testClient->givePermissionTo("edit-posts"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "clientRole|edit-news|edit-posts", null, true)); $this->testClient->removeRole("clientRole"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "clientRole|edit-posts", null, true)); $this->testClient->revokePermissionTo("edit-posts"); $this->testClient->assignRole("clientRole"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "clientRole|edit-posts", null, true)); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, array("clientRole", "edit-posts"), null, true)); } public function a_super_admin_user_can_access_a_route_protected_by_permission_or_role_middleware() { Auth::login($this->testUser); Gate::before(function ($user, $ability) { return $user->getKey() === $this->testUser->getKey() ? true : null; }); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-articles")); } public function a_user_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_has_roles_trait() { $userWithoutHasRoles = UserWithoutHasRoles::create(array("email" => "[email protected]")); Auth::login($userWithoutHasRoles); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-articles")); } public function a_user_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_this_permission_and_role() { Auth::login($this->testUser); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "testRole|edit-articles")); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "missingRole|missingPermission")); } public function a_client_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_this_permission_and_role() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("requires laravel >= 9"); } Passport::actingAsClient($this->testClient, array("*")); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "clientRole|edit-posts", null, true)); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "missingRole|missingPermission", null, true)); } public function use_not_existing_custom_guard_in_role_or_permission() { $class = null; try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("<html></html>"); }, "testRole", "xxx"); } catch (InvalidArgumentException $e) { $class = get_class($e); } $this->assertEquals(InvalidArgumentException::class, $class); } public function user_can_not_access_permission_or_role_with_guard_admin_while_login_using_default_guard() { Auth::login($this->testUser); $this->testUser->assignRole("testRole"); $this->testUser->givePermissionTo("edit-articles"); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "edit-articles|testRole", "admin")); } public function client_can_not_access_permission_or_role_with_guard_admin_while_login_using_default_guard() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("requires laravel >= 9"); } Passport::actingAsClient($this->testClient, array("*")); $this->testClient->assignRole("clientRole"); $this->testClient->givePermissionTo("edit-posts"); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "edit-posts|clientRole", "admin", true)); } public function user_can_access_permission_or_role_with_guard_admin_while_login_using_admin_guard() { Auth::guard("admin")->login($this->testAdmin); $this->testAdmin->assignRole("testAdminRole"); $this->testAdmin->givePermissionTo("admin-permission"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "admin-permission|testAdminRole", "admin")); } public function the_required_permissions_or_roles_can_be_fetched_from_the_exception() { Auth::login($this->testUser); $message = null; $requiredRolesOrPermissions = array(); try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("<html></html>"); }, "some-permission|some-role"); } catch (UnauthorizedException $e) { $message = $e->getMessage(); $requiredRolesOrPermissions = $e->getRequiredPermissions(); } $this->assertEquals("User does not have any of the necessary access rights.", $message); $this->assertEquals(array("some-permission", "some-role"), $requiredRolesOrPermissions); } public function the_required_permissions_or_roles_can_be_displayed_in_the_exception() { Auth::login($this->testUser); Config::set(array("permission.display_permission_in_exception" => true)); Config::set(array("permission.display_role_in_exception" => true)); $message = null; try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("<html></html>"); }, "some-permission|some-role"); } catch (UnauthorizedException $e) { $message = $e->getMessage(); } $this->assertStringEndsWith("Necessary roles or permissions are some-permission, some-role", $message); } public function the_middleware_can_be_created_with_static_using_method() { $this->assertSame("Spatie\Permission\Middleware\RoleOrPermissionMiddleware:edit-articles", RoleOrPermissionMiddleware::using("edit-articles")); $this->assertEquals("Spatie\Permission\Middleware\RoleOrPermissionMiddleware:edit-articles,my-guard", RoleOrPermissionMiddleware::using("edit-articles", "my-guard")); $this->assertEquals("Spatie\Permission\Middleware\RoleOrPermissionMiddleware:edit-articles|testAdminRole", RoleOrPermissionMiddleware::using(array("edit-articles", "testAdminRole"))); } } ?>
Did this file decode correctly?
Original Code
<?php
namespace Spatie\Permission\Tests; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Gate; use InvalidArgumentException; use Laravel\Passport\Passport; use Spatie\Permission\Exceptions\UnauthorizedException; use Spatie\Permission\Middleware\RoleOrPermissionMiddleware; use Spatie\Permission\Tests\TestModels\UserWithoutHasRoles; class RoleOrPermissionMiddlewareTest extends TestCase { protected $roleOrPermissionMiddleware; protected $usePassport = true; protected function setUp() : void { parent::setUp(); $this->roleOrPermissionMiddleware = new RoleOrPermissionMiddleware(); } public function a_guest_cannot_access_a_route_protected_by_the_role_or_permission_middleware() { $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x74\145\163\x74\x52\x6f\x6c\145")); } public function a_user_can_access_a_route_protected_by_permission_or_role_middleware_if_has_this_permission_or_role() { Auth::login($this->testUser); $this->testUser->assignRole("\x74\145\163\164\122\x6f\x6c\x65"); $this->testUser->givePermissionTo("\145\144\151\164\55\141\x72\x74\151\x63\x6c\x65\x73"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\164\x65\163\164\122\157\154\x65\174\145\144\151\164\x2d\156\145\x77\163\174\145\x64\151\164\55\141\162\x74\151\x63\154\x65\163")); $this->testUser->removeRole("\164\x65\x73\164\122\x6f\154\x65"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x74\x65\x73\x74\x52\157\x6c\x65\174\145\x64\x69\164\55\141\x72\164\151\143\154\145\x73")); $this->testUser->revokePermissionTo("\x65\144\151\x74\x2d\x61\x72\x74\151\x63\x6c\145\x73"); $this->testUser->assignRole("\164\x65\163\x74\122\157\x6c\x65"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\164\145\163\164\122\157\154\145\x7c\x65\x64\x69\164\x2d\141\162\x74\x69\x63\154\x65\x73")); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, array("\164\145\163\164\122\157\x6c\x65", "\x65\x64\x69\164\x2d\x61\162\164\x69\x63\x6c\x65\163"))); } public function a_client_can_access_a_route_protected_by_permission_or_role_middleware_if_has_this_permission_or_role() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("\162\145\x71\165\x69\x72\x65\163\x20\154\141\162\x61\166\x65\154\x20\76\x3d\40\x39"); } Passport::actingAsClient($this->testClient, array("\x2a")); $this->testClient->assignRole("\x63\x6c\x69\x65\156\x74\x52\x6f\x6c\145"); $this->testClient->givePermissionTo("\x65\144\x69\x74\55\160\157\x73\164\x73"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\143\x6c\151\145\156\164\122\x6f\154\145\x7c\145\144\151\x74\x2d\x6e\x65\x77\x73\174\x65\x64\151\164\x2d\x70\157\163\x74\163", null, true)); $this->testClient->removeRole("\143\154\151\145\x6e\164\x52\157\x6c\x65"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x63\154\x69\x65\x6e\164\122\157\154\x65\x7c\145\144\x69\164\x2d\x70\157\163\x74\x73", null, true)); $this->testClient->revokePermissionTo("\145\144\x69\164\55\160\x6f\163\x74\163"); $this->testClient->assignRole("\143\x6c\x69\x65\x6e\x74\122\x6f\x6c\x65"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x63\154\151\145\156\164\122\x6f\154\145\174\145\144\151\x74\x2d\160\157\163\164\x73", null, true)); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, array("\x63\154\151\145\156\x74\122\157\154\145", "\145\144\151\x74\55\160\157\x73\164\x73"), null, true)); } public function a_super_admin_user_can_access_a_route_protected_by_permission_or_role_middleware() { Auth::login($this->testUser); Gate::before(function ($user, $ability) { return $user->getKey() === $this->testUser->getKey() ? true : null; }); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x74\145\163\164\122\x6f\154\145\x7c\x65\144\151\164\55\x61\162\164\151\x63\x6c\145\163")); } public function a_user_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_has_roles_trait() { $userWithoutHasRoles = UserWithoutHasRoles::create(array("\x65\155\141\151\x6c" => "\x74\145\163\164\x5f\156\157\x74\137\x68\141\163\x5f\162\157\154\145\x73\x40\x75\x73\145\x72\x2e\143\x6f\155")); Auth::login($userWithoutHasRoles); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\164\x65\163\164\122\x6f\x6c\145\x7c\x65\x64\x69\x74\x2d\x61\x72\164\151\143\154\x65\163")); } public function a_user_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_this_permission_and_role() { Auth::login($this->testUser); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x74\x65\163\x74\x52\157\x6c\x65\x7c\x65\x64\151\x74\55\x61\162\164\151\143\x6c\x65\163")); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\155\x69\163\163\x69\156\x67\x52\157\x6c\x65\x7c\155\x69\x73\163\x69\156\x67\x50\145\162\155\151\163\163\151\157\x6e")); } public function a_client_can_not_access_a_route_protected_by_permission_or_role_middleware_if_have_not_this_permission_and_role() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("\162\145\x71\165\151\162\x65\x73\x20\x6c\141\x72\141\x76\145\154\40\x3e\75\40\71"); } Passport::actingAsClient($this->testClient, array("\x2a")); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x63\x6c\151\x65\156\164\122\x6f\x6c\x65\174\145\x64\x69\164\x2d\x70\x6f\163\x74\163", null, true)); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x6d\151\x73\x73\151\156\x67\x52\157\x6c\x65\x7c\x6d\151\x73\x73\151\x6e\147\120\145\x72\155\151\x73\x73\x69\x6f\x6e", null, true)); } public function use_not_existing_custom_guard_in_role_or_permission() { $class = null; try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("\74\150\x74\x6d\x6c\76\74\x2f\150\x74\155\154\x3e"); }, "\x74\145\x73\164\x52\157\154\145", "\x78\170\x78"); } catch (InvalidArgumentException $e) { $class = get_class($e); } $this->assertEquals(InvalidArgumentException::class, $class); } public function user_can_not_access_permission_or_role_with_guard_admin_while_login_using_default_guard() { Auth::login($this->testUser); $this->testUser->assignRole("\x74\x65\x73\x74\x52\157\154\145"); $this->testUser->givePermissionTo("\145\144\151\x74\x2d\x61\x72\164\151\x63\154\x65\x73"); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\145\144\151\x74\55\141\162\x74\x69\x63\x6c\145\163\x7c\x74\x65\163\164\122\x6f\154\x65", "\141\x64\155\x69\156")); } public function client_can_not_access_permission_or_role_with_guard_admin_while_login_using_default_guard() : void { if ($this->getLaravelVersion() < 9) { $this->markTestSkipped("\x72\x65\161\165\x69\x72\x65\x73\x20\154\141\162\141\x76\145\154\40\x3e\x3d\40\71"); } Passport::actingAsClient($this->testClient, array("\x2a")); $this->testClient->assignRole("\x63\x6c\x69\145\x6e\x74\122\x6f\x6c\145"); $this->testClient->givePermissionTo("\145\x64\151\164\x2d\x70\157\x73\164\x73"); $this->assertEquals(403, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x65\x64\151\x74\x2d\x70\157\x73\164\x73\174\143\154\x69\145\x6e\164\x52\157\154\145", "\x61\x64\155\151\156", true)); } public function user_can_access_permission_or_role_with_guard_admin_while_login_using_admin_guard() { Auth::guard("\x61\x64\x6d\151\x6e")->login($this->testAdmin); $this->testAdmin->assignRole("\x74\145\163\164\101\144\155\x69\x6e\x52\x6f\154\x65"); $this->testAdmin->givePermissionTo("\141\x64\x6d\x69\156\x2d\160\145\x72\x6d\x69\x73\x73\151\157\x6e"); $this->assertEquals(200, $this->runMiddleware($this->roleOrPermissionMiddleware, "\x61\144\155\x69\x6e\x2d\x70\145\162\x6d\x69\x73\163\x69\x6f\156\174\x74\x65\x73\164\x41\144\155\151\x6e\x52\x6f\x6c\145", "\x61\144\x6d\x69\x6e")); } public function the_required_permissions_or_roles_can_be_fetched_from_the_exception() { Auth::login($this->testUser); $message = null; $requiredRolesOrPermissions = array(); try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("\x3c\150\x74\155\x6c\x3e\x3c\x2f\150\164\155\154\76"); }, "\x73\x6f\155\145\x2d\160\x65\x72\155\151\163\163\x69\157\156\x7c\x73\157\155\x65\x2d\x72\157\x6c\145"); } catch (UnauthorizedException $e) { $message = $e->getMessage(); $requiredRolesOrPermissions = $e->getRequiredPermissions(); } $this->assertEquals("\125\163\x65\162\x20\144\157\145\163\40\156\157\x74\x20\150\x61\166\x65\40\x61\x6e\x79\40\x6f\146\40\164\150\145\40\156\145\x63\x65\x73\163\x61\162\x79\40\x61\143\x63\x65\x73\163\40\162\151\147\x68\164\x73\x2e", $message); $this->assertEquals(array("\x73\157\155\x65\55\160\x65\x72\x6d\151\x73\163\x69\x6f\x6e", "\x73\157\x6d\x65\55\x72\x6f\x6c\145"), $requiredRolesOrPermissions); } public function the_required_permissions_or_roles_can_be_displayed_in_the_exception() { Auth::login($this->testUser); Config::set(array("\x70\145\162\x6d\151\163\x73\151\157\x6e\56\144\151\163\160\154\x61\x79\x5f\160\x65\162\x6d\151\163\x73\151\x6f\x6e\x5f\151\x6e\x5f\145\x78\x63\145\x70\x74\x69\157\x6e" => true)); Config::set(array("\160\145\162\155\151\163\x73\151\x6f\156\x2e\x64\151\163\x70\154\x61\171\x5f\162\x6f\x6c\x65\x5f\x69\x6e\x5f\x65\170\143\145\x70\x74\x69\x6f\156" => true)); $message = null; try { $this->roleOrPermissionMiddleware->handle(new Request(), function () { return (new Response())->setContent("\x3c\x68\x74\x6d\x6c\76\74\x2f\150\x74\x6d\154\x3e"); }, "\163\x6f\x6d\x65\x2d\160\145\162\155\151\x73\163\151\x6f\156\x7c\163\x6f\x6d\145\x2d\x72\x6f\x6c\x65"); } catch (UnauthorizedException $e) { $message = $e->getMessage(); } $this->assertStringEndsWith("\116\145\143\145\163\x73\141\162\x79\x20\x72\157\154\x65\x73\40\157\x72\40\x70\x65\x72\155\151\163\163\x69\x6f\156\163\40\141\x72\145\x20\163\157\x6d\x65\55\x70\x65\162\x6d\151\x73\x73\x69\157\x6e\54\40\x73\x6f\155\145\x2d\162\157\x6c\x65", $message); } public function the_middleware_can_be_created_with_static_using_method() { $this->assertSame("\x53\160\141\164\151\145\134\x50\x65\162\155\151\163\x73\151\157\156\134\115\x69\144\144\154\x65\167\141\162\145\x5c\122\x6f\154\x65\117\162\120\x65\162\x6d\151\x73\x73\151\x6f\156\115\x69\x64\x64\x6c\145\167\141\162\x65\72\145\x64\x69\x74\x2d\141\162\x74\x69\143\x6c\145\x73", RoleOrPermissionMiddleware::using("\145\x64\x69\x74\x2d\141\x72\x74\151\143\154\145\x73")); $this->assertEquals("\123\160\x61\x74\151\145\134\x50\145\162\155\151\163\163\151\x6f\156\134\x4d\x69\x64\144\x6c\145\167\x61\162\x65\x5c\x52\x6f\154\x65\117\162\x50\145\162\x6d\151\163\163\151\x6f\x6e\x4d\x69\x64\x64\154\x65\167\141\162\145\x3a\145\144\151\164\55\x61\162\x74\x69\x63\154\x65\163\x2c\155\x79\x2d\x67\x75\141\x72\x64", RoleOrPermissionMiddleware::using("\x65\144\x69\x74\x2d\x61\x72\x74\151\143\x6c\x65\163", "\155\x79\x2d\x67\x75\141\162\x64")); $this->assertEquals("\123\160\x61\164\x69\x65\134\x50\x65\x72\155\151\163\x73\x69\x6f\156\x5c\115\151\x64\144\154\145\x77\141\162\145\134\122\x6f\154\145\117\162\x50\x65\x72\x6d\x69\x73\163\151\x6f\x6e\115\151\x64\144\x6c\x65\167\x61\x72\x65\x3a\x65\144\x69\164\x2d\x61\162\164\151\x63\154\145\163\x7c\x74\145\x73\164\101\144\x6d\151\x6e\x52\x6f\154\145", RoleOrPermissionMiddleware::using(array("\145\x64\x69\x74\x2d\141\162\x74\151\143\154\x65\x73", "\x74\x65\163\x74\101\144\x6d\151\156\x52\x6f\x6c\145"))); } }
Function Calls
None |
Stats
MD5 | 1bd9f3ef8404991b3311da9a7faf0489 |
Eval Count | 0 |
Decode Time | 111 ms |