AccountController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Controllers\Settings;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Support\Facades\Auth;
  6. use Illuminate\Support\Facades\Hash;
  7. class AccountController extends Controller
  8. {
  9. /**
  10. * get detailed information about a user
  11. * @return [type] [description]
  12. */
  13. public function show()
  14. {
  15. return response()->json(Auth::user()->only('name', 'email'), 200);
  16. }
  17. /**
  18. * Update the user's profile information.
  19. *
  20. * @param \Illuminate\Http\Request $request
  21. * @return \Illuminate\Http\Response
  22. */
  23. public function update(Request $request)
  24. {
  25. $user = $request->user();
  26. $this->validate($request, [
  27. 'name' => 'required',
  28. 'email' => 'required|email|unique:users,email,'.Auth::id(),
  29. 'password' => 'required',
  30. ]);
  31. if (!Hash::check( $request->password, Auth::user()->password) ) {
  32. return response()->json(['message' => __('errors.wrong_current_password')], 400);
  33. }
  34. if (!config('app.options.isDemoApp') ) {
  35. tap($user)->update($request->only('name', 'email'));
  36. }
  37. return response()->json([
  38. 'message' => __('auth.forms.profile_saved'),
  39. 'username' => $request->name
  40. ]);
  41. }
  42. }