Moved wrong user action

This commit is contained in:
notCharles 2025-08-12 13:31:44 -04:00
parent 23f6825072
commit 68178cd654
2 changed files with 5 additions and 128 deletions

View File

@ -8,6 +8,7 @@ use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Resources\Pages\ListRecords;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\CreateAction;
class ListUsers extends ListRecords
{
@ -19,6 +20,8 @@ class ListUsers extends ListRecords
/** @return array<Action|ActionGroup> */
protected function getDefaultHeaderActions(): array
{
return [];
return [
CreateAction::make(),
];
}
}

View File

@ -2,29 +2,13 @@
namespace App\Filament\Server\Resources\UserResource\Pages;
use App\Facades\Activity;
use App\Filament\Server\Resources\UserResource;
use App\Models\Permission;
use App\Models\Server;
use App\Services\Subusers\SubuserCreationService;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Exception;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\CreateAction;
use Filament\Facades\Filament;
use Filament\Forms\Components\CheckboxList;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Grid;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Tabs;
use Filament\Schemas\Components\Tabs\Tab;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Support\Enums\IconSize;
use Illuminate\Contracts\Support\Htmlable;
class ListUsers extends ListRecords
@ -39,117 +23,7 @@ class ListUsers extends ListRecords
*/
protected function getDefaultHeaderActions(): array
{
/** @var Server $server */
$server = Filament::getTenant();
$tabs = [];
$permissionsArray = [];
foreach (Permission::permissionData() as $data) {
$options = [];
$descriptions = [];
foreach ($data['permissions'] as $permission) {
$options[$permission] = str($permission)->headline();
$descriptions[$permission] = trans('server/user.permissions.' . $data['name'] . '_' . str($permission)->replace('-', '_'));
$permissionsArray[$data['name']][] = $permission;
}
$tabs[] = Tab::make(str($data['name'])->headline())
->schema([
Section::make()
->description(trans('server/user.permissions.' . $data['name'] . '_desc'))
->icon($data['icon'])
->schema([
CheckboxList::make($data['name'])
->label('')
->bulkToggleable()
->columns(2)
->options($options)
->descriptions($descriptions),
]),
]);
}
return [
CreateAction::make('invite')
->hiddenLabel()->iconButton()->iconSize(IconSize::Large)
->icon('tabler-user-plus')
->tooltip(trans('server/user.invite_user'))
->createAnother(false)
->authorize(fn () => auth()->user()->can(Permission::ACTION_USER_CREATE, $server))
->schema([
Grid::make()
->columnSpanFull()
->columns([
'default' => 1,
'sm' => 1,
'md' => 5,
'lg' => 6,
])
->schema([
TextInput::make('email')
->label(trans('server/user.email'))
->email()
->inlineLabel()
->columnSpan([
'default' => 1,
'sm' => 1,
'md' => 4,
'lg' => 5,
])
->required(),
Action::make('assignAll')
->label(trans('server/user.assign_all'))
->action(function (Set $set, Get $get) use ($permissionsArray) {
$permissions = $permissionsArray;
foreach ($permissions as $key => $value) {
$allValues = array_unique($value);
$set($key, $allValues);
}
}),
Tabs::make()
->columnSpanFull()
->schema($tabs),
]),
])
->modalHeading(trans('server/user.invite_user'))
->modalSubmitActionLabel(trans('server/user.action'))
->action(function (array $data, SubuserCreationService $service) use ($server) {
$email = strtolower($data['email']);
$permissions = collect($data)
->forget('email')
->flatMap(fn ($permissions, $key) => collect($permissions)->map(fn ($permission) => "$key.$permission"))
->push(Permission::ACTION_WEBSOCKET_CONNECT)
->unique()
->all();
try {
$subuser = $service->handle($server, $email, $permissions);
Activity::event('server:subuser.create')
->subject($subuser->user)
->property([
'email' => $data['email'],
'permissions' => $permissions,
]);
Notification::make()
->title(trans('server/user.notification_add'))
->success()
->send();
} catch (Exception $exception) {
Notification::make()
->title(trans('server/user.notification_failed'))
->body($exception->getMessage())
->danger()
->send();
}
return redirect(self::getUrl(tenant: $server));
}),
];
return [];
}
public function getBreadcrumbs(): array