SettingsController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\{Profile, User};
  5. use Auth;
  6. class SettingsController extends Controller
  7. {
  8. public function __construct()
  9. {
  10. return $this->middleware('auth');
  11. }
  12. public function home()
  13. {
  14. return view('settings.home');
  15. }
  16. public function homeUpdate(Request $request)
  17. {
  18. $this->validate($request, [
  19. 'name' => 'required|string|max:30',
  20. 'bio' => 'string|max:125'
  21. ]);
  22. $changes = false;
  23. $name = $request->input('name');
  24. $bio = $request->input('bio');
  25. $user = Auth::user();
  26. $profile = $user->profile;
  27. if($profile->name != $name) {
  28. $changes = true;
  29. $user->name = $name;
  30. $profile->name = $name;
  31. }
  32. if($profile->bio != $bio) {
  33. $changes = true;
  34. $profile->bio = $bio;
  35. }
  36. if($changes === true) {
  37. $user->save();
  38. $profile->save();
  39. return redirect('/settings/home')->with('status', 'Profile successfully updated!');
  40. }
  41. return redirect('/settings/home');
  42. }
  43. public function password()
  44. {
  45. return view('settings.password');
  46. }
  47. public function passwordUpdate(Request $request)
  48. {
  49. $this->validate($request, [
  50. 'current' => 'required|string',
  51. 'password' => 'required|string',
  52. 'password_confirmation' => 'required|string',
  53. ]);
  54. $current = $request->input('current');
  55. $new = $request->input('password');
  56. $confirm = $request->input('password_confirmation');
  57. $user = Auth::user();
  58. if(password_verify($current, $user->password) && $new === $confirm) {
  59. $user->password = bcrypt($new);
  60. $user->save();
  61. return redirect('/settings/home')->with('status', 'Password successfully updated!');
  62. }
  63. return redirect('/settings/home')->with('error', 'There was an error with your request!');
  64. }
  65. public function email()
  66. {
  67. return view('settings.email');
  68. }
  69. public function avatar()
  70. {
  71. return view('settings.avatar');
  72. }
  73. public function notifications()
  74. {
  75. return view('settings.notifications');
  76. }
  77. public function privacy()
  78. {
  79. return view('settings.privacy');
  80. }
  81. public function security()
  82. {
  83. return view('settings.security');
  84. }
  85. public function applications()
  86. {
  87. return view('settings.applications');
  88. }
  89. public function dataExport()
  90. {
  91. return view('settings.dataexport');
  92. }
  93. public function dataImport()
  94. {
  95. return view('settings.import.home');
  96. }
  97. public function dataImportInstagram()
  98. {
  99. return view('settings.import.ig');
  100. }
  101. public function developers()
  102. {
  103. return view('settings.developers');
  104. }
  105. }