add filter for user panel
This commit is contained in:
parent
30e4c7d28a
commit
d86bdd22d9
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\View\Composers;
|
||||
|
||||
use App\Models\User;
|
||||
use Blessing\Filter;
|
||||
use Illuminate\Contracts\Events\Dispatcher;
|
||||
use Illuminate\View\View;
|
||||
@ -22,15 +23,17 @@ class UserPanelComposer
|
||||
|
||||
public function compose(View $view)
|
||||
{
|
||||
/** @var User */
|
||||
$user = auth()->user();
|
||||
$avatarUrl = route('avatar.user', ['uid' => $user->uid, 'size' => 45]);
|
||||
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
|
||||
|
||||
$badges = [];
|
||||
if (auth()->user()->isAdmin()) {
|
||||
if ($user->isAdmin()) {
|
||||
$badges[] = ['text' => 'STAFF', 'color' => 'primary'];
|
||||
}
|
||||
$this->dispatcher->dispatch(new \App\Events\RenderingBadges($badges));
|
||||
$badges = $this->filter->apply('user_badges', $badges, [$user]);
|
||||
|
||||
$view->with(compact('user', 'avatar', 'badges'));
|
||||
}
|
||||
|
@ -17,6 +17,8 @@ class UserPanelComposerTest extends TestCase
|
||||
|
||||
public function testBadges()
|
||||
{
|
||||
$filter = Fakes\Filter::fake();
|
||||
|
||||
$user = factory(User::class)->create();
|
||||
$this->actingAs($user);
|
||||
|
||||
@ -26,6 +28,12 @@ class UserPanelComposerTest extends TestCase
|
||||
|
||||
$this->get('/user')
|
||||
->assertSee('<span class="badge bg-purple mb-1 mr-2">Pro</span>', false);
|
||||
$filter->assertApplied('user_badges', function ($badges, $user) {
|
||||
$this->assertCount(1, $badges);
|
||||
$this->assertInstanceOf(User::class, $user);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
$user->permission = User::ADMIN;
|
||||
$user->save();
|
||||
|
Loading…
Reference in New Issue
Block a user