AuthLogin.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Listeners;
  3. use DB, Cache;
  4. use App\{
  5. Follower,
  6. Profile,
  7. User,
  8. UserFilter,
  9. UserSetting
  10. };
  11. use Illuminate\Queue\InteractsWithQueue;
  12. use App\Jobs\AvatarPipeline\CreateAvatar;
  13. use Illuminate\Contracts\Queue\ShouldQueue;
  14. class AuthLogin
  15. {
  16. /**
  17. * Handle the event.
  18. *
  19. * @param object $event
  20. * @return void
  21. */
  22. public function handle($event)
  23. {
  24. $user = $event->user;
  25. if(!$user) {
  26. return;
  27. }
  28. if (empty($user->settings)) {
  29. DB::transaction(function() use($user) {
  30. UserSetting::firstOrCreate([
  31. 'user_id' => $user->id
  32. ]);
  33. });
  34. }
  35. if($user->status != null) {
  36. $profile = $user->profile;
  37. if(!$profile) {
  38. return;
  39. }
  40. switch ($user->status) {
  41. case 'disabled':
  42. $profile->status = null;
  43. $user->status = null;
  44. $profile->save();
  45. $user->save();
  46. break;
  47. case 'delete':
  48. $profile->status = null;
  49. $profile->delete_after = null;
  50. $user->status = null;
  51. $user->delete_after = null;
  52. $profile->save();
  53. $user->save();
  54. break;
  55. default:
  56. # code...
  57. break;
  58. }
  59. }
  60. }
  61. }