diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index ff12d850..17acd4b0 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -88,9 +88,24 @@ class UserController extends Controller "role" => ['sometimes', Rule::in(['admin', 'mod', 'client', 'member'])], ]); - $user->update($request->all()); - event(new UserUpdateCreditsEvent($user)); + + //Update Users Password on Pterodactyl + //Username,Mail,First and Lastname are required aswell + $response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [ + "username" => $request->name, + "first_name" => $request->name, + "last_name" => $request->name, + "email" => $request->email, + + ]); + if ($response->failed()) { + throw ValidationException::withMessages([ + 'pterodactyl_error_message' => $response->toException()->getMessage(), + 'pterodactyl_error_status' => $response->toException()->getCode() + ]); + } + $user->update($request->all()); return $user; } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 3ddc1655..50f19d1e 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Classes\Pterodactyl; use App\Models\Configuration; use App\Models\User; use Illuminate\Contracts\View\Factory; @@ -11,6 +12,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; +use Illuminate\Validation\ValidationException; class ProfileController extends Controller { @@ -53,10 +55,27 @@ class ProfileController extends Controller 'new_password_confirmation' => 'required|same:new_password' ]); + //Update Users Password on Pterodactyl + //Username,Mail,First and Lastname are required aswell + $response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [ + "password" => $request->input('new_password'), + "username" => $request->input('name'), + "first_name" => $request->input('name'), + "last_name" => $request->input('name'), + "email" => $request->input('email'), + + ]); + if ($response->failed()) { + throw ValidationException::withMessages([ + 'pterodactyl_error_message' => $response->toException()->getMessage(), + 'pterodactyl_error_status' => $response->toException()->getCode() + ]); + } //update password $user->update([ 'password' => Hash::make($request->input('new_password')), ]); + } //validate request @@ -80,11 +99,27 @@ class ProfileController extends Controller ]); } + //update name and email on Pterodactyl + $response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [ + "username" => $request->input('name'), + "first_name" => $request->input('name'), + "last_name" => $request->input('name'), + "email" => $request->input('email'), + ]); + + if ($response->failed()) { + throw ValidationException::withMessages([ + 'pterodactyl_error_message' => $response->toException()->getMessage(), + 'pterodactyl_error_status' => $response->toException()->getCode() + ]); + } + //update name and email $user->update([ 'name' => $request->input('name'), 'email' => $request->input('email'), ]); + $user->sendEmailVerificationNotification(); return redirect()->route('profile.index')->with('success' , __('Profile updated')); } diff --git a/resources/views/profile/index.blade.php b/resources/views/profile/index.blade.php index 3a02f5b8..3bc69bca 100644 --- a/resources/views/profile/index.blade.php +++ b/resources/views/profile/index.blade.php @@ -11,7 +11,8 @@