My SMM panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

97 lines
2.3 KiB

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\User;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\Hash;
  7. use Illuminate\Auth\Events\Registered;
  8. use Illuminate\Support\Facades\Password;
  9. use Illuminate\Support\Facades\Auth;
  10. class UserController extends Controller
  11. {
  12. public function create(Request $request) {
  13. $validated = $request->validate([
  14. 'name' => 'required',
  15. 'email' => 'required|email|unique:users',
  16. 'password' => 'required'
  17. /* 'password' => 'required|confirmed|min:8|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/' */
  18. ]);
  19. $user = new User;
  20. $user->name = $request->name;
  21. $user->email = $request->email;
  22. $user->role = "client";
  23. $user->password = Hash::make($request->password);
  24. $user->save();
  25. event(new Registered($user));
  26. return response()->json([
  27. "status" => "success"
  28. ]);
  29. }
  30. public function forgotPassword(Request $request) {
  31. $request->validate(['email' => 'required|email']);
  32. $status = Password::sendResetLink(
  33. $request->only('email')
  34. );
  35. if ($status === Password::RESET_LINK_SENT) {
  36. return response()->json([
  37. "status" => "success"
  38. ]);
  39. } else {
  40. return response()->json($errors->all());
  41. }
  42. }
  43. public function resetPassword(Request $request) {
  44. $request->validate([
  45. 'token' => 'required',
  46. 'email' => 'required|email',
  47. 'password' => 'required|min:8|confirmed',
  48. ]);
  49. $status = Password::reset(
  50. $request->only('email', 'password',
  51. 'password_confirmation', 'token'),
  52. function ($user, $password) use ($request) {
  53. $user->forceFill([
  54. 'password' => Hash::make($password)
  55. ])->setRememberToken(Str::random(60));
  56. });
  57. if ($status == Password::PASSWORD_RESET) {
  58. return response()->json([
  59. "status" => "success"
  60. ]);
  61. } else {
  62. return response()->json([__($status)]);
  63. }
  64. }
  65. public function login(Request $request) {
  66. $credentials = $request->only('email', 'password');
  67. //This should probably be changed to not return a page
  68. if (Auth::attempt($credentials)) {
  69. $request->session()->regenerate();
  70. return response()->json(["status" => "success"]);
  71. }
  72. return response()->json(["status" => "error"]);
  73. }
  74. public function logout(Request $request) {
  75. Auth::logout();
  76. $request->session()->invalidate();
  77. $request->session()->regenerateToken();
  78. return redirect('/');
  79. }
  80. }