PasswordController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\UserPatchPwdRequest;
  5. use Illuminate\Support\Facades\Auth;
  6. use Illuminate\Support\Facades\Hash;
  7. use Illuminate\Support\Facades\Log;
  8. class PasswordController extends Controller
  9. {
  10. /**
  11. * Update the user's password.
  12. *
  13. * @return \Illuminate\Http\JsonResponse
  14. */
  15. public function update(UserPatchPwdRequest $request)
  16. {
  17. $user = $request->user();
  18. $validated = $request->validated();
  19. if (config('auth.defaults.guard') === 'reverse-proxy-guard' || $user->oauth_provider) {
  20. Log::notice('Password update rejected: reverse-proxy-guard enabled or account from external sso provider');
  21. return response()->json(['message' => __('errors.account_managed_by_external_provider')], 400);
  22. }
  23. if (! Hash::check($validated['currentPassword'], Auth::user()->password)) {
  24. Log::notice('Password update failed: wrong password provided');
  25. return response()->json(['message' => __('errors.wrong_current_password')], 400);
  26. }
  27. if (! config('2fauth.config.isDemoApp')) {
  28. $user->update([
  29. 'password' => bcrypt($validated['password']),
  30. ]);
  31. Log::info(sprintf('Password of user ID #%s updated', $user->id));
  32. }
  33. return response()->json(['message' => __('auth.forms.password_successfully_changed')]);
  34. }
  35. }