Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Services/Users/UserUpdateService.php
14043 views
1
<?php
2
3
namespace Pterodactyl\Services\Users;
4
5
use Pterodactyl\Models\User;
6
use Illuminate\Contracts\Hashing\Hasher;
7
use Pterodactyl\Events\User\PasswordChanged;
8
use Pterodactyl\Traits\Services\HasUserLevels;
9
10
class UserUpdateService
11
{
12
use HasUserLevels;
13
14
/**
15
* UserUpdateService constructor.
16
*/
17
public function __construct(private Hasher $hasher)
18
{
19
}
20
21
/**
22
* Update the user model instance and return the updated model.
23
*
24
* @throws \Throwable
25
*/
26
public function handle(User $user, array $data): User
27
{
28
if (!empty(array_get($data, 'password'))) {
29
$data['password'] = $this->hasher->make($data['password']);
30
} else {
31
unset($data['password']);
32
}
33
34
$user->forceFill($data)->saveOrFail();
35
36
if (isset($data['password'])) {
37
PasswordChanged::dispatch($user);
38
}
39
40
return $user->refresh();
41
}
42
}
43
44