Skip to content

Commit

Permalink
Merge pull request #19 from ShaungBhone/upgrade-filament-v3
Browse files Browse the repository at this point in the history
Upgrading filament version 3 and filament shield
  • Loading branch information
3x1io authored Aug 2, 2023
2 parents ceeb42a + b363b4c commit bbe662b
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 84 deletions.
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
"minimum-stability": "dev",
"require": {
"php": "^8.1",
"bezhansalleh/filament-shield": "^2.3",
"filament/filament": "^2.16",
"bezhansalleh/filament-shield": "^3.0@beta",
"filament/filament": "^3.0.0",
"spatie/laravel-package-tools": "^1.14",
"stechstudio/filament-impersonate": "^2.11",
"stechstudio/filament-impersonate": "^3.2",
"queents/console-helpers": "^1.0"
},
"config": {
Expand Down
8 changes: 4 additions & 4 deletions src/FilamentUserProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace io3x1\FilamentUser;

use Filament\PluginServiceProvider;
use io3x1\FilamentUser\Console\PublishUserResourceCommand;
use io3x1\FilamentUser\Resources\UserResource;
use Spatie\LaravelPackageTools\Package;
use io3x1\FilamentUser\Resources\UserResource;
use Spatie\LaravelPackageTools\PackageServiceProvider;
use io3x1\FilamentUser\Console\PublishUserResourceCommand;


class FilamentUserProvider extends PluginServiceProvider
class FilamentUserProvider extends PackageServiceProvider
{
/**
* @var string
Expand Down
101 changes: 63 additions & 38 deletions src/Resources/UserResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,20 @@
use Filament\Forms;
use App\Models\User;
use Filament\Tables;
use Filament\Resources\Form;
use Filament\Resources\Table;
use Filament\Forms\Form;
use Filament\Tables\Table;
use Filament\Resources\Resource;
use Illuminate\Support\Facades\Hash;
use Filament\Tables\Actions\EditAction;
use Filament\Tables\Actions\ViewAction;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
use Filament\Tables\Columns\BooleanColumn;
use Filament\Tables\Actions\ActionGroup;
use Filament\Tables\Actions\DeleteAction;
use Illuminate\Database\Eloquent\Builder;
use io3x1\FilamentUser\Resources\UserResource\Pages;
use STS\FilamentImpersonate\Impersonate;
use STS\FilamentImpersonate\Tables\Actions\Impersonate;

class UserResource extends Resource
{
Expand All @@ -24,7 +28,7 @@ class UserResource extends Resource

protected static ?string $navigationIcon = 'heroicon-o-lock-closed';

protected static function getNavigationLabel(): string
public static function getNavigationLabel(): string
{
return trans('filament-user::user.resource.label');
}
Expand All @@ -39,38 +43,44 @@ public static function getLabel(): string
return trans('filament-user::user.resource.single');
}

protected static function getNavigationGroup(): ?string
public static function getNavigationGroup(): ?string
{
return config('filament-user.group');
}

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.resource');
}

public static function form(Form $form): Form
{
$rows = [
TextInput::make('name')->required()->label(trans('filament-user::user.resource.name')),
TextInput::make('email')->email()->required()->label(trans('filament-user::user.resource.email')),
Forms\Components\TextInput::make('password')->label(trans('filament-user::user.resource.password'))
TextInput::make('name')
->required()
->label(trans('filament-user::user.resource.name')),
TextInput::make('email')
->email()
->required()
->label(trans('filament-user::user.resource.email')),
TextInput::make('password')
->label(trans('filament-user::user.resource.password'))
->password()
->maxLength(255)
->dehydrateStateUsing(static function ($state) use ($form){
if(!empty($state)){
return Hash::make($state);
}
->dehydrateStateUsing(static function ($state) use ($form) {
return !empty($state) ? Hash::make($state) : null;

$user = User::find($form->getColumns());
if($user){
return $user->password;
}
return $user ? $user->password : null;
}),
];

if(config('filament-user.shield')){
$rows[] = Forms\Components\MultiSelect::make('roles')->relationship('roles', 'name')->label(trans('filament-user::user.resource.roles'));
if (config('filament-user.shield')) {
$rows[] = Forms\Components\Select::make('roles')
->multiple()
->preload()
->relationship('roles', 'name')
->label(trans('filament-user::user.resource.roles'));
}

$form->schema($rows);
Expand All @@ -80,34 +90,49 @@ public static function form(Form $form): Form

public static function table(Table $table): Table
{
$table
return $table
->columns([
TextColumn::make('id')->sortable()->label(trans('filament-user::user.resource.id')),
TextColumn::make('name')->sortable()->searchable()->label(trans('filament-user::user.resource.name')),
TextColumn::make('email')->sortable()->searchable()->label(trans('filament-user::user.resource.email')),
BooleanColumn::make('email_verified_at')->sortable()->searchable()->label(trans('filament-user::user.resource.email_verified_at')),
Tables\Columns\TextColumn::make('created_at')->label(trans('filament-user::user.resource.created_at'))
->dateTime('M j, Y')->sortable(),
Tables\Columns\TextColumn::make('updated_at')->label(trans('filament-user::user.resource.updated_at'))
->dateTime('M j, Y')->sortable(),

TextColumn::make('id')
->sortable()
->label(trans('filament-user::user.resource.id')),
TextColumn::make('name')
->sortable()
->searchable()
->label(trans('filament-user::user.resource.name')),
TextColumn::make('email')
->sortable()
->searchable()
->label(trans('filament-user::user.resource.email')),
IconColumn::make('email_verified_at')
->boolean()
->sortable()
->searchable()
->label(trans('filament-user::user.resource.email_verified_at')),
TextColumn::make('created_at')
->label(trans('filament-user::user.resource.created_at'))
->dateTime('M j, Y')
->sortable(),
TextColumn::make('updated_at')
->label(trans('filament-user::user.resource.updated_at'))
->dateTime('M j, Y')
->sortable(),
])
->filters([
Tables\Filters\Filter::make('verified')
->label(trans('filament-user::user.resource.verified'))
->query(fn (Builder $query): Builder => $query->whereNotNull('email_verified_at')),
->query(fn(Builder $query): Builder => $query->whereNotNull('email_verified_at')),
Tables\Filters\Filter::make('unverified')
->label(trans('filament-user::user.resource.unverified'))
->query(fn (Builder $query): Builder => $query->whereNull('email_verified_at')),
]);

if(config('filament-user.impersonate')){
$table->prependActions([
->query(fn(Builder $query): Builder => $query->whereNull('email_verified_at')),
])
->actions([
Impersonate::make('impersonate'),
ActionGroup::make([
ViewAction::make(),
EditAction::make(),
DeleteAction::make()
]),
]);
}

return $table;
}

public static function getPages(): array
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/UserResource/Pages/CreateUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CreateUser extends CreateRecord
{
protected static string $resource = UserResource::class;

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.create');
}
Expand Down
4 changes: 2 additions & 2 deletions src/Resources/UserResource/Pages/EditUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class EditUser extends EditRecord
{
protected static string $resource = UserResource::class;

protected function mutateFormDataBeforeSave(array $data): array
public function mutateFormDataBeforeSave(array $data): array
{
$getUser = User::where('email', $data['email'])->first();
if ($getUser) {
Expand All @@ -21,7 +21,7 @@ protected function mutateFormDataBeforeSave(array $data): array
return $data;
}

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.edit');
}
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/UserResource/Pages/ListUsers.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class ListUsers extends ListRecords
{
protected static string $resource = UserResource::class;

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.list');
}
Expand Down
2 changes: 1 addition & 1 deletion stubs/CreateUser.stub
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CreateUser extends CreateRecord
{
protected static string $resource = UserResource::class;

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.create');
}
Expand Down
4 changes: 2 additions & 2 deletions stubs/EditUser.stub
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class EditUser extends EditRecord
{
protected static string $resource = UserResource::class;

protected function mutateFormDataBeforeSave(array $data): array
public function mutateFormDataBeforeSave(array $data): array
{
$getUser = User::where('email', $data['email'])->first();
if ($getUser) {
Expand All @@ -21,7 +21,7 @@ class EditUser extends EditRecord
return $data;
}

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.edit');
}
Expand Down
2 changes: 1 addition & 1 deletion stubs/ListUsers.stub
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class ListUsers extends ListRecords
{
protected static string $resource = UserResource::class;

protected function getTitle(): string
public function getTitle(): string
{
return trans('filament-user::user.resource.title.list');
}
Expand Down
Loading

0 comments on commit bbe662b

Please sign in to comment.