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\Sup..
Decoded Output download
<?php
namespace Spatie\Permission\Tests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Spatie\Permission\Contracts\Permission;
use Spatie\Permission\Tests\TestModels\Manager;
class MultipleGuardsTest extends TestCase
{
protected function getEnvironmentSetUp($app)
{
parent::getEnvironmentSetUp($app);
$app['config']->set('auth.guards', [
'web' => ['driver' => 'session', 'provider' => 'users'],
'api' => ['driver' => 'token', 'provider' => 'users'],
'jwt' => ['driver' => 'token', 'provider' => 'users'],
'abc' => ['driver' => 'abc'],
'admin' => ['driver' => 'session', 'provider' => 'admins'],
]);
$this->setUpRoutes();
}
/**
* Create routes to test authentication with guards.
*/
public function setUpRoutes(): void
{
Route::middleware('auth:api')->get('/check-api-guard-permission', function (Request $request) {
return [
'status' => $request->user()->checkPermissionTo('use_api_guard'),
];
});
}
/** @test */
public function it_can_give_a_permission_to_a_model_that_is_used_by_multiple_guards()
{
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_this',
'guard_name' => 'web',
]));
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_that',
'guard_name' => 'api',
]));
$this->assertTrue($this->testUser->checkPermissionTo('do_this', 'web'));
$this->assertTrue($this->testUser->checkPermissionTo('do_that', 'api'));
$this->assertFalse($this->testUser->checkPermissionTo('do_that', 'web'));
}
/** @test */
public function the_gate_can_grant_permission_to_a_user_by_passing_a_guard_name()
{
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_this',
'guard_name' => 'web',
]));
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_that',
'guard_name' => 'api',
]));
$this->assertTrue($this->testUser->can('do_this', 'web'));
$this->assertTrue($this->testUser->can('do_that', 'api'));
$this->assertFalse($this->testUser->can('do_that', 'web'));
$this->assertTrue($this->testUser->cannot('do_that', 'web'));
$this->assertTrue($this->testUser->canAny(['do_this', 'do_that'], 'web'));
$this->testAdminRole->givePermissionTo($this->testAdminPermission);
$this->testAdmin->assignRole($this->testAdminRole);
$this->assertTrue($this->testAdmin->hasPermissionTo($this->testAdminPermission));
$this->assertTrue($this->testAdmin->can('admin-permission'));
$this->assertTrue($this->testAdmin->can('admin-permission', 'admin'));
$this->assertTrue($this->testAdmin->cannot('admin-permission', 'web'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission', 'web'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission', 'admin'));
$this->assertTrue($this->testAdmin->cannot(['admin-permission', 'non-existing-permission'], 'web'));
$this->assertFalse($this->testAdmin->can('edit-articles', 'web'));
$this->assertFalse($this->testAdmin->can('edit-articles', 'admin'));
$this->assertTrue($this->testUser->cannot('edit-articles', 'admin'));
$this->assertTrue($this->testUser->cannot('admin-permission', 'admin'));
$this->assertTrue($this->testUser->cannot('admin-permission', 'web'));
}
/** @test */
public function it_can_honour_guardName_function_on_model_for_overriding_guard_name_property()
{
$user = Manager::create(['email' => '[email protected]']);
$user->givePermissionTo(app(Permission::class)::create([
'name' => 'do_jwt',
'guard_name' => 'jwt',
]));
// Manager test user has the guardName override method, which returns 'jwt'
$this->assertTrue($user->checkPermissionTo('do_jwt', 'jwt'));
$this->assertTrue($user->hasPermissionTo('do_jwt', 'jwt'));
// Manager test user has the $guard_name property set to 'web'
$this->assertFalse($user->checkPermissionTo('do_jwt', 'web'));
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Spatie\Permission\Tests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Spatie\Permission\Contracts\Permission;
use Spatie\Permission\Tests\TestModels\Manager;
class MultipleGuardsTest extends TestCase
{
protected function getEnvironmentSetUp($app)
{
parent::getEnvironmentSetUp($app);
$app['config']->set('auth.guards', [
'web' => ['driver' => 'session', 'provider' => 'users'],
'api' => ['driver' => 'token', 'provider' => 'users'],
'jwt' => ['driver' => 'token', 'provider' => 'users'],
'abc' => ['driver' => 'abc'],
'admin' => ['driver' => 'session', 'provider' => 'admins'],
]);
$this->setUpRoutes();
}
/**
* Create routes to test authentication with guards.
*/
public function setUpRoutes(): void
{
Route::middleware('auth:api')->get('/check-api-guard-permission', function (Request $request) {
return [
'status' => $request->user()->checkPermissionTo('use_api_guard'),
];
});
}
/** @test */
public function it_can_give_a_permission_to_a_model_that_is_used_by_multiple_guards()
{
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_this',
'guard_name' => 'web',
]));
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_that',
'guard_name' => 'api',
]));
$this->assertTrue($this->testUser->checkPermissionTo('do_this', 'web'));
$this->assertTrue($this->testUser->checkPermissionTo('do_that', 'api'));
$this->assertFalse($this->testUser->checkPermissionTo('do_that', 'web'));
}
/** @test */
public function the_gate_can_grant_permission_to_a_user_by_passing_a_guard_name()
{
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_this',
'guard_name' => 'web',
]));
$this->testUser->givePermissionTo(app(Permission::class)::create([
'name' => 'do_that',
'guard_name' => 'api',
]));
$this->assertTrue($this->testUser->can('do_this', 'web'));
$this->assertTrue($this->testUser->can('do_that', 'api'));
$this->assertFalse($this->testUser->can('do_that', 'web'));
$this->assertTrue($this->testUser->cannot('do_that', 'web'));
$this->assertTrue($this->testUser->canAny(['do_this', 'do_that'], 'web'));
$this->testAdminRole->givePermissionTo($this->testAdminPermission);
$this->testAdmin->assignRole($this->testAdminRole);
$this->assertTrue($this->testAdmin->hasPermissionTo($this->testAdminPermission));
$this->assertTrue($this->testAdmin->can('admin-permission'));
$this->assertTrue($this->testAdmin->can('admin-permission', 'admin'));
$this->assertTrue($this->testAdmin->cannot('admin-permission', 'web'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission', 'web'));
$this->assertTrue($this->testAdmin->cannot('non-existing-permission', 'admin'));
$this->assertTrue($this->testAdmin->cannot(['admin-permission', 'non-existing-permission'], 'web'));
$this->assertFalse($this->testAdmin->can('edit-articles', 'web'));
$this->assertFalse($this->testAdmin->can('edit-articles', 'admin'));
$this->assertTrue($this->testUser->cannot('edit-articles', 'admin'));
$this->assertTrue($this->testUser->cannot('admin-permission', 'admin'));
$this->assertTrue($this->testUser->cannot('admin-permission', 'web'));
}
/** @test */
public function it_can_honour_guardName_function_on_model_for_overriding_guard_name_property()
{
$user = Manager::create(['email' => '[email protected]']);
$user->givePermissionTo(app(Permission::class)::create([
'name' => 'do_jwt',
'guard_name' => 'jwt',
]));
// Manager test user has the guardName override method, which returns 'jwt'
$this->assertTrue($user->checkPermissionTo('do_jwt', 'jwt'));
$this->assertTrue($user->hasPermissionTo('do_jwt', 'jwt'));
// Manager test user has the $guard_name property set to 'web'
$this->assertFalse($user->checkPermissionTo('do_jwt', 'web'));
}
}
Function Calls
None |
Stats
MD5 | 806f5bbd11805f869bf46e66ac2671c8 |
Eval Count | 0 |
Decode Time | 81 ms |