LoginController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\{AccountLog, User};
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Foundation\Auth\AuthenticatesUsers;
  6. class LoginController extends Controller
  7. {
  8. /*
  9. |--------------------------------------------------------------------------
  10. | Login Controller
  11. |--------------------------------------------------------------------------
  12. |
  13. | This controller handles authenticating users for the application and
  14. | redirecting them to your home screen. The controller uses a trait
  15. | to conveniently provide its functionality to your applications.
  16. |
  17. */
  18. use AuthenticatesUsers;
  19. /**
  20. * Where to redirect users after login.
  21. *
  22. * @var string
  23. */
  24. protected $redirectTo = '/';
  25. /**
  26. * Create a new controller instance.
  27. *
  28. * @return void
  29. */
  30. public function __construct()
  31. {
  32. $this->middleware('guest')->except('logout');
  33. }
  34. /**
  35. * Validate the user login request.
  36. *
  37. * @param \Illuminate\Http\Request $request
  38. * @return void
  39. */
  40. public function validateLogin($request)
  41. {
  42. $rules = [
  43. $this->username() => 'required|string',
  44. 'password' => 'required|string',
  45. ];
  46. if(config('pixelfed.recaptcha')) {
  47. $rules['g-recaptcha-response'] = 'required|recaptcha';
  48. }
  49. $this->validate($request, $rules);
  50. }
  51. /**
  52. * The user has been authenticated.
  53. *
  54. * @param \Illuminate\Http\Request $request
  55. * @param mixed $user
  56. * @return mixed
  57. */
  58. protected function authenticated($request, $user)
  59. {
  60. $log = new AccountLog;
  61. $log->user_id = $user->id;
  62. $log->item_id = $user->id;
  63. $log->item_type = 'App\User';
  64. $log->action = 'auth.login';
  65. $log->message = 'Account Login';
  66. $log->link = null;
  67. $log->ip_address = $request->ip();
  68. $log->user_agent = $request->userAgent();
  69. $log->save();
  70. }
  71. }