My SMM panel
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

UserController.php 2.2 KiB

vor 3 Jahren
vor 3 Jahren
vor 3 Jahren
vor 3 Jahren
vor 3 Jahren
vor 3 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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,email',
  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->active = true;
  24. $user->password = Hash::make($request->password);
  25. $user->save();
  26. event(new Registered($user));
  27. }
  28. public function forgotPassword(Request $request) {
  29. $request->validate(['email' => 'required|email']);
  30. $status = Password::sendResetLink(
  31. $request->only('email')
  32. );
  33. if ($status === Password::RESET_LINK_SENT) {
  34. return response()->json([
  35. "status" => "success"
  36. ]);
  37. }
  38. }
  39. public function resetPassword(Request $request) {
  40. $request->validate([
  41. 'token' => 'required',
  42. 'email' => 'required|email',
  43. 'password' => 'required|min:8|confirmed',
  44. ]);
  45. $status = Password::reset(
  46. $request->only('email', 'password',
  47. 'password_confirmation', 'token'),
  48. function ($user, $password) use ($request) {
  49. $user->forceFill([
  50. 'password' => Hash::make($password)
  51. ])->setRememberToken(Str::random(60));
  52. });
  53. if ($status == Password::PASSWORD_RESET) {
  54. return response()->json([
  55. "status" => "success"
  56. ]);
  57. }
  58. }
  59. public function login(Request $request) {
  60. $credentials = $request->only('email', 'password');
  61. //This should probably be changed to not return a page
  62. if (Auth::attempt($credentials)) {
  63. $request->session()->regenerate();
  64. return response()->json(["status" => "success"]);
  65. }
  66. /* return response()->json(["status" => "error"]); */
  67. }
  68. public function logout(Request $request) {
  69. Auth::logout();
  70. $request->session()->invalidate();
  71. $request->session()->regenerateToken();
  72. return redirect('/');
  73. }
  74. }