Skip to content

Commit 2fb1037

Browse files
Remove unwanted logic
1 parent f202b0d commit 2fb1037

File tree

7 files changed

+12
-193
lines changed

7 files changed

+12
-193
lines changed

composer.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@
2222
],
2323
"require": {
2424
"php": "^8.1",
25-
"backstage/laravel-users": "^0.1.4",
25+
"backstage/laravel-users": "^0.1.5",
2626
"filament/filament": "^4.0",
27-
"laravel/sanctum": ">=3.3.3",
2827
"spatie/laravel-package-tools": "^1.15.0",
29-
"spatie/laravel-permission": ">=6.0",
3028
"lorisleiva/laravel-actions": ">=2.8"
3129
},
3230
"require-dev": {

src/Models/User.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ protected static function boot()
3838
});
3939
}
4040
}
41+

src/Resources/UserResource/Pages/ViewUser.php

Lines changed: 1 addition & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,21 @@
22

33
namespace Backstage\Filament\Users\Resources\UserResource\Pages;
44

5-
use BackedEnum;
65
use Backstage\Filament\Users\Actions\GenerateSignedRegistrationUri;
76
use Backstage\Filament\Users\Models\User;
87
use Backstage\Filament\Users\Resources\UserResource\UserResource;
9-
use Backstage\Laravel\Users\Eloquent\Models\UserTraffic;
108
use Filament\Actions;
11-
use Filament\Actions\Action;
129
use Filament\Auth\Notifications\ResetPassword;
1310
use Filament\Auth\Notifications\VerifyEmail;
1411
use Filament\Facades\Filament;
15-
use Filament\Infolists\Components\KeyValueEntry;
16-
use Filament\Infolists\Components\TextEntry;
1712
use Filament\Resources\Pages\ViewRecord;
18-
use Filament\Schemas\Components\Grid;
19-
use Filament\Schemas\Components\Section;
20-
use Filament\Support\Enums\Alignment;
21-
use Filament\Support\Icons\Heroicon;
22-
use Filament\Tables\Columns\TextColumn;
23-
use Filament\Tables\Concerns\InteractsWithTable;
24-
use Filament\Tables\Contracts\HasTable;
25-
use Filament\Tables\Table;
2613
use Illuminate\Contracts\Support\Htmlable;
27-
use Illuminate\Database\Eloquent\Builder;
2814
use Illuminate\Database\Eloquent\Model;
2915
use Illuminate\Support\Facades\Blade;
3016
use Illuminate\Support\HtmlString;
3117

32-
class ViewUser extends ViewRecord implements HasTable
18+
class ViewUser extends ViewRecord
3319
{
34-
use InteractsWithTable {
35-
makeTable as makeBaseTable;
36-
}
37-
3820
protected static string $resource = UserResource::class;
3921

4022
protected function getHeaderActions(): array
@@ -121,142 +103,4 @@ public function getSubheading(): string | Htmlable | null
121103

122104
return new HtmlString(Blade::render($string->toString()));
123105
}
124-
125-
public function table(Table $table): Table
126-
{
127-
return $table
128-
->query(fn (): Builder => $this->record->traffic()->whereNot('path', 'livewire/update')->orderByDesc('created_at')->getQuery())
129-
->heading(fn ($table): Htmlable => new HtmlString(Blade::render('<filament::icon icon="heroicon-m-user"/>' . __('User Traffic (:count)', [
130-
'count' => $table->getQuery()->count(),
131-
]))))
132-
->searchable($table->getQuery()->count() > 0)
133-
->paginated([4])
134-
->columns([
135-
TextColumn::make('path')
136-
->label(__('Path'))
137-
->searchable(),
138-
])
139-
->headerActions([
140-
Action::make('reset')
141-
->label(__('Reset position'))
142-
->icon(fn (): BackedEnum => Heroicon::ArrowUturnLeft)
143-
->url(fn (): string => $this->getUrl([
144-
'record' => $this->record,
145-
]))
146-
->visible(function () {
147-
$tableRecords = $this->getTableRecords();
148-
149-
$firstFourRecords = $this->getTable()->getQuery()->take(4)->get();
150-
151-
$recordIds = $firstFourRecords->pluck('id')->toArray();
152-
$tableRecords = $tableRecords->pluck('id')->toArray();
153-
154-
if ($tableRecords === $recordIds) {
155-
return false;
156-
}
157-
158-
return true;
159-
}),
160-
161-
Action::make('clear_activity')
162-
->label(__('Clear Activity'))
163-
->color(fn (): string => 'danger')
164-
->icon(fn (): BackedEnum => Heroicon::Trash)
165-
->action(function (Model $record): void {
166-
$record->traffic()->delete();
167-
})
168-
->requiresConfirmation()
169-
->modalDescription(__('This action will delete all traffic records for this user. This action cannot be undone.'))
170-
->visible(fn (User $record): bool => $record->traffic()->exists() && $record->traffic()->whereNot('path', 'livewire/update')->exists()),
171-
])
172-
->recordAction('view')
173-
->recordActions([
174-
Action::make('visit')
175-
->button()
176-
->hiddenLabel()
177-
->color(fn (): string => 'primary')
178-
->tooltip(fn (): string => __('Visit Path'))
179-
->icon(fn (): BackedEnum => Heroicon::ArrowTopRightOnSquare)
180-
->url(fn (UserTraffic $record): string => $record->getAttribute('full_url'), true),
181-
182-
Action::make('view')
183-
->button()
184-
->hiddenLabel()
185-
->color(fn (): string => 'gray')
186-
->tooltip(fn (): string => __('View Traffic'))
187-
->icon(fn (): BackedEnum => Heroicon::Eye)
188-
->slideOver()
189-
->modal()
190-
->modalIcon(fn (): BackedEnum => Heroicon::Eye)
191-
->modalHeading(fn (): string => __('Traffic Details'))
192-
->modalDescription(fn (UserTraffic $record): Htmlable => new HtmlString(__('Traffic details for :path', [
193-
'path' => '<a href="' . e($record->getAttribute('full_url')) . '" target="_blank" class="text-primary-600 underline">' . e($record->getAttribute('path')) . '</a>',
194-
])))
195-
->schema([
196-
Section::make(__('Request Information'))
197-
->description(__('Details about the HTTP request.'))
198-
->icon('heroicon-o-globe-alt')
199-
->schema([
200-
Grid::make(3)
201-
->schema([
202-
TextEntry::make('method')
203-
->label(__('Method'))
204-
->badge()
205-
->color(fn (string $state): string => match ($state) {
206-
'GET' => 'success',
207-
'POST' => 'primary',
208-
'PUT' => 'warning',
209-
'DELETE' => 'danger',
210-
default => 'gray',
211-
})
212-
->copyable(),
213-
214-
TextEntry::make('ip')
215-
->label(__('IP Address'))
216-
->copyable(),
217-
218-
TextEntry::make('user_agent')
219-
->label(__('User Agent'))
220-
->copyable(),
221-
])
222-
->columnSpanFull(),
223-
224-
Grid::make(2)
225-
->schema([
226-
TextEntry::make('full_url')
227-
->label(__('Full URL'))
228-
->copyable(),
229-
230-
TextEntry::make('referer')
231-
->label(__('Source Referer'))
232-
->copyable(),
233-
])
234-
->columnSpanFull(),
235-
])
236-
->columns(1),
237-
238-
Section::make(__('Route Details'))
239-
->description(__('Matched route and resolved parameters.'))
240-
->icon('heroicon-o-arrow-path')
241-
->schema([
242-
TextEntry::make('route_name')
243-
->label(__('Route Name'))
244-
->columnSpan(1),
245-
246-
TextEntry::make('route_action')
247-
->label(__('Route Action'))
248-
->columnSpan(1),
249-
250-
KeyValueEntry::make('route_parameters')
251-
->label(__('Route Parameters'))
252-
->columnSpanFull(),
253-
])
254-
->columns(2),
255-
256-
])
257-
->modalFooterActionsAlignment(Alignment::Center)
258-
->modalSubmitAction(fn (Action $action) => $action->visible(false))
259-
->modalCancelActionLabel(fn (): string => __('Close')),
260-
]);
261-
}
262106
}

src/Resources/UserResource/Schemas/UserInfolist.php

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
use Filament\Schemas\Schema;
1414
use Filament\Support\Icons\Heroicon;
1515
use Illuminate\Database\Eloquent\Model;
16-
use Illuminate\Support\Facades\Blade;
17-
use Illuminate\Support\HtmlString;
1816

1917
class UserInfolist
2018
{
@@ -67,13 +65,6 @@ public static function configure(Schema $schema): Schema
6765
->columnSpanFull(),
6866
])
6967
->columnSpan(3),
70-
71-
TextEntry::make('hi')
72-
->columnSpan(6)
73-
->hiddenLabel()
74-
->state(function () {
75-
return new HtmlString(Blade::render('{{ $this->table }} '));
76-
}),
7768
])
7869
->columnSpanFull(),
7970
]);

src/Resources/UserResource/UserResource.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static function canAccess(): bool
4747

4848
public static function getModel(): string
4949
{
50-
return \App\Models\User::class;
50+
return config('auth.providers.users.model') ?? throw new \RuntimeException('No user model configured. Please set the "auth.providers.users.model" configuration value.');
5151
}
5252

5353
public static function getRecordTitleAttribute(): ?string

src/UsersPlugin.php

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use Backstage\Filament\Users\Models\User;
88
use Backstage\Filament\Users\Plugin\Actions\ToggleSubnavigationTypeAction;
99
use Backstage\Filament\Users\Plugin\Actions\ToggleWidthAction;
10-
use Backstage\Laravel\Users\Http\Middleware\DetectUserTraffic;
1110
use Closure;
1211
use Filament\Actions\Action;
1312
use Filament\Contracts\Plugin;
@@ -30,14 +29,12 @@ public function getId(): string
3029

3130
public function register(Panel $panel): void
3231
{
33-
if (config('backstage.users.resources.users') !== null) {
34-
$panel->resources([
35-
config('backstage.users.resources.users', Resources\UserResource\UserResource::class),
36-
config('backstage.users.resources.roles', Resources\RoleResource\RoleResource::class),
37-
]);
38-
}
39-
40-
$middleware = [];
32+
// if (config('backstage.users.resources.users') !== null) {
33+
$panel->resources([
34+
config('backstage.users.resources.users', Resources\UserResource\UserResource::class),
35+
config('backstage.users.resources.roles', Resources\RoleResource\RoleResource::class),
36+
]);
37+
// }
4138

4239
$panel->emailVerification();
4340

@@ -47,11 +44,9 @@ public function register(Panel $panel): void
4744
$panel->emailVerificationPromptRouteSlug('prompt');
4845
$panel->emailVerificationRouteSlug('verify');
4946

50-
$middleware[] = RedirectUnverifiedUsers::class;
47+
$middleware = [];
5148

52-
if (config('users.events.requests.web_traffic.enabled', true)) {
53-
$middleware[] = DetectUserTraffic::class;
54-
}
49+
$middleware[] = RedirectUnverifiedUsers::class;
5550

5651
$panel->middleware($middleware);
5752

src/Widgets/StatsOverviewWidget.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Backstage\Filament\Users\Widgets;
44

55
use Backstage\Filament\Users\Resources\UserResource\UserResource;
6-
use Backstage\Laravel\Users\Eloquent\Models\UserTraffic;
76
use Filament\Support\Colors\Color;
87
use Filament\Widgets\StatsOverviewWidget as WidgetsStatsOverviewWidget;
98
use Filament\Widgets\StatsOverviewWidget\Stat;
@@ -20,15 +19,6 @@ protected function getStats(): array
2019
return [
2120
Stat::make(__('Total Users'), UserResource::getEloquentQuery()->count()),
2221

23-
Stat::make(
24-
__('Daily user traffic'),
25-
round(UserTraffic::query()
26-
->selectRaw('DATE(created_at) as day, COUNT(*) as count')
27-
->groupBy('day')
28-
->get()
29-
->avg('count'), 0, 2),
30-
),
31-
3222
Stat::make(__('Verified Users'), UserResource::getEloquentQuery()->where('email_verified_at', '!=', null)->count())
3323
->color(Color::Green)
3424
->icon('heroicon-o-check-circle'),

0 commit comments

Comments
 (0)