mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-25 13:34:45 +02:00
Fix Subuser issues. (#747)
* Better Error handling * Remove unique, make email lowercase in request * Remove 'kill' option, not used. * Prevent users from editing them selves --------- Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
This commit is contained in:
parent
6d1c153d09
commit
c6977e57c8
@ -103,7 +103,7 @@ class UserResource extends Resource
|
||||
}),
|
||||
EditAction::make()
|
||||
->label('Edit User')
|
||||
|
||||
->hidden(fn (User $user) => auth()->user()->id === $user->id)
|
||||
->authorize(fn () => auth()->user()->can(Permission::ACTION_USER_UPDATE, $server))
|
||||
->modalHeading(fn (User $user) => 'Editing ' . $user->email)
|
||||
->action(function (array $data, SubuserUpdateService $subuserUpdateService, User $user) use ($server) {
|
||||
|
@ -6,6 +6,7 @@ use App\Filament\Server\Resources\UserResource;
|
||||
use App\Models\Permission;
|
||||
use App\Models\Server;
|
||||
use App\Services\Subusers\SubuserCreationService;
|
||||
use Exception;
|
||||
use Filament\Actions;
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Forms\Components\Actions as assignAll;
|
||||
@ -53,8 +54,7 @@ class ListUsers extends ListRecords
|
||||
'md' => 4,
|
||||
'lg' => 5,
|
||||
])
|
||||
->required()
|
||||
->unique(),
|
||||
->required(),
|
||||
assignAll::make([
|
||||
Action::make('assignAll')
|
||||
->label('Assign All')
|
||||
@ -65,7 +65,6 @@ class ListUsers extends ListRecords
|
||||
'start',
|
||||
'stop',
|
||||
'restart',
|
||||
'kill',
|
||||
],
|
||||
'user' => [
|
||||
'read',
|
||||
@ -365,18 +364,28 @@ class ListUsers extends ListRecords
|
||||
->modalHeading('Invite User')
|
||||
->modalSubmitActionLabel('Invite')
|
||||
->action(function (array $data, SubuserCreationService $service) use ($server) {
|
||||
$email = $data['email'];
|
||||
$email = strtolower($data['email']);
|
||||
|
||||
if (in_array('console', $data['control'])) {
|
||||
$data['websocket'][0] = 'connect';
|
||||
}
|
||||
$permissions = collect($data)->forget('email')->map(fn ($permissions, $key) => collect($permissions)->map(fn ($permission) => "$key.$permission"))->flatten()->all();
|
||||
$service->handle($server, $email, $permissions);
|
||||
|
||||
Notification::make()
|
||||
->title('User Invited!')
|
||||
->success()
|
||||
->send();
|
||||
$permissions = collect($data)->forget('email')->map(fn ($permissions, $key) => collect($permissions)->map(fn ($permission) => "$key.$permission"))->flatten()->all();
|
||||
|
||||
try {
|
||||
$service->handle($server, $email, $permissions);
|
||||
|
||||
Notification::make()
|
||||
->title('User Invited!')
|
||||
->success()
|
||||
->send();
|
||||
} catch (Exception $exception) {
|
||||
Notification::make()
|
||||
->title('Failed')
|
||||
->body($exception->getMessage())
|
||||
->danger()
|
||||
->send();
|
||||
}
|
||||
|
||||
return redirect(self::getUrl(tenant: $server));
|
||||
}),
|
||||
|
Loading…
x
Reference in New Issue
Block a user