mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-19 22:14:45 +02:00
99 lines
4.2 KiB
PHP
99 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\UserResource\Pages;
|
|
|
|
use App\Models\ActivityLog;
|
|
use Filament\Forms\Components\Placeholder;
|
|
use Filament\Forms\Components\Repeater;
|
|
use Filament\Forms\Components\Tabs;
|
|
use Filament\Forms\Components\Tabs\Tab;
|
|
use Filament\Forms\Components\TextInput;
|
|
use Filament\Forms\Get;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\HtmlString;
|
|
use Illuminate\Validation\Rules\Password;
|
|
|
|
class EditProfile extends \Filament\Pages\Auth\EditProfile
|
|
{
|
|
protected function getForms(): array
|
|
{
|
|
return [
|
|
'form' => $this->form(
|
|
$this->makeForm()
|
|
->schema([
|
|
Tabs::make()->schema([
|
|
Tab::make('Account')
|
|
->icon('tabler-user')
|
|
->schema([
|
|
TextInput::make('username')
|
|
->disabled()
|
|
->readOnly()
|
|
->maxLength(191)
|
|
->unique(ignoreRecord: true)
|
|
->autofocus(),
|
|
|
|
TextInput::make('email')
|
|
->email()
|
|
->required()
|
|
->maxLength(191)
|
|
->unique(ignoreRecord: true),
|
|
|
|
TextInput::make('password')
|
|
->password()
|
|
->revealable(filament()->arePasswordsRevealable())
|
|
->rule(Password::default())
|
|
->autocomplete('new-password')
|
|
->dehydrated(fn ($state): bool => filled($state))
|
|
->dehydrateStateUsing(fn ($state): string => Hash::make($state))
|
|
->live(debounce: 500)
|
|
->same('passwordConfirmation'),
|
|
|
|
TextInput::make('passwordConfirmation')
|
|
->password()
|
|
->revealable(filament()->arePasswordsRevealable())
|
|
->required()
|
|
->visible(fn (Get $get): bool => filled($get('password')))
|
|
->dehydrated(false),
|
|
]),
|
|
|
|
Tab::make('2FA')
|
|
->icon('tabler-shield-lock')
|
|
->schema([
|
|
Placeholder::make('Coming soon!'),
|
|
]),
|
|
|
|
Tab::make('API Keys')
|
|
->icon('tabler-key')
|
|
->schema([
|
|
Placeholder::make('Coming soon!'),
|
|
]),
|
|
|
|
Tab::make('SSH Keys')
|
|
->icon('tabler-lock-code')
|
|
->schema([
|
|
Placeholder::make('Coming soon!'),
|
|
]),
|
|
|
|
Tab::make('Activity')
|
|
->icon('tabler-history')
|
|
->schema([
|
|
Repeater::make('activity')
|
|
->deletable(false)
|
|
->addable(false)
|
|
->relationship()
|
|
|
|
->schema([
|
|
Placeholder::make('activity!')->label('')->content(fn (ActivityLog $log) => new HtmlString($log->htmlable())),
|
|
]),
|
|
]),
|
|
]),
|
|
])
|
|
->operation('edit')
|
|
->model($this->getUser())
|
|
->statePath('data')
|
|
->inlineLabel(!static::isSimple()),
|
|
),
|
|
];
|
|
}
|
|
}
|