RegisterController.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Providers\RouteServiceProvider;
  6. use App\User;
  7. use Illuminate\Support\Facades\Validator;
  8. use Illuminate\Foundation\Auth\RegistersUsers;
  9. use Illuminate\Support\Facades\Mail;
  10. use Illuminate\Support\Facades\Hash;
  11. //use App\Mail\SignUp;
  12. use App\Models\ReferUser;
  13. use Auth;
  14. use Illuminate\Support\Str;
  15. class RegisterController extends Controller
  16. {
  17. /*
  18. |--------------------------------------------------------------------------
  19. | Register Controller
  20. |--------------------------------------------------------------------------
  21. |
  22. | This controller handles the registration of new users as well as their
  23. | validation and creation. By default this controller uses a trait to
  24. | provide this functionality without requiring any additional code.
  25. |
  26. */
  27. // use RegistersUsers;
  28. /**
  29. * Where to redirect users after registration.
  30. *
  31. * @var string
  32. */
  33. //protected $redirectTo = RouteServiceProvider::HOME;
  34. /**
  35. * Create a new controller instance.
  36. *
  37. * @return void
  38. */
  39. public function __construct()
  40. {
  41. $this->middleware('guest');
  42. }
  43. /**
  44. * Get a validator for an incoming registration request.
  45. *
  46. * @param array $data
  47. * @return \Illuminate\Contracts\Validation\Validator
  48. */
  49. protected function validator(array $data)
  50. {
  51. // if($data['user_type']==1){
  52. return Validator::make($data, [
  53. 'givenname' => ['required', 'string', 'max:255'],
  54. 'familyname' => ['required', 'string', 'max:255'],
  55. 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
  56. 'password' => ['required', 'string', 'min:8', 'confirmed'],
  57. 'nationality' => ['required', 'string','max:255'],
  58. 'dob' => ['required', 'string','date'],
  59. 'optradio' => ['required', 'string','max:255'],
  60. ]);
  61. // }
  62. }
  63. /**
  64. * Create a new user instance after a valid registration.
  65. *
  66. * @param array $data
  67. * @return \App\User
  68. */
  69. protected function create(Request $req)
  70. {
  71. //if($data['user_type']==1){
  72. $token =Str::random(64);
  73. $user_check_data =User::where('email',$req->email)->where('user_type',1)->where('sign_up',1)->doesntExist();
  74. if($user_check_data){
  75. $user_data = User::create([
  76. 'first_name' => $req->givenname,
  77. 'last_name' => $req->familyname,
  78. 'email' => $req->email,
  79. 'nationality' => $req->nationality,
  80. 'dob' => \Carbon\Carbon::parse($req->dob)->format('Y-m-d'),
  81. 'gender' => $req->optradio,
  82. 'user_type' => 1,
  83. 'password' => Hash::make($req->password),
  84. 'status' => 0,
  85. 'remember_token' => $token,
  86. 'sign_up' =>1,
  87. 'register_type' =>5, // Normal registration student
  88. 'registered_date' =>now(),
  89. ]);
  90. }else{
  91. return redirect()->to("/login")->with('success','You are already registered. Please login here.');
  92. }
  93. $refer_user_exists = ReferUser::where('email',$req->email)->first();
  94. if($refer_user_exists){
  95. $refer_user_exists->signup =1;
  96. $refer_user_exists->update();
  97. }
  98. $data['token'] = $token;
  99. $data['name'] = $req->givenname .' '.$req->familyname;
  100. $data['receive_email']=$req->email;
  101. $user_mail = $req->email;
  102. $from = 'asraful@revinr.com';
  103. Mail::send('email.student_signup_verify_email',$data, function ($message) use ($user_mail,$from) {
  104. $message->from($from);
  105. $message->to($user_mail)->subject('Email Verification Required: Complete your Registration');
  106. });
  107. return redirect()->to("/login")->with('success','Your registration successfully saved. Please check your email for verification');
  108. //}
  109. }
  110. public function showRegistrationForm()
  111. {
  112. return view('auth.register');
  113. }
  114. public function email_verification($token)
  115. {
  116. $data = User::where('remember_token',$token)->first();
  117. if($data->email_verification ==1){
  118. return Redirect('/login');
  119. }
  120. $data->email_verification=1;
  121. $data->email_verified_at=now();
  122. $data->status=1;
  123. $data->update();
  124. return Redirect('/login')->with('success','Your e-mail has been verified successfully. Please login to your account');
  125. }
  126. }