PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/main/app/Http/Controllers/LoginController.php

https://gitlab.com/yutdhidev_labs/webku
PHP | 165 lines | 135 code | 23 blank | 7 comment | 6 complexity | 4b75b87a13da527e0e571ba9dcb90555 MD5 | raw file
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Users;
  5. use App\Models\Member;
  6. use Illuminate\Support\Facades\Hash;
  7. use Illuminate\Support\Facades\Session;
  8. use Illuminate\Support\Facades\Mail;
  9. use DB;
  10. class LoginController extends Controller
  11. {
  12. public function register()
  13. {
  14. $data['gelombang'] = '';
  15. return view('register')->with($data);
  16. }
  17. public function register_action(Request $request){
  18. $count = Member::where('email',$request->email)->count();
  19. if($count > 0){
  20. return redirect('/')->with(['failed' => 'Registrasi Gagal, Email Sudah Terdaftar!']);
  21. }else{
  22. $rep = str_replace("+","",$request->telp);
  23. $rep2 = str_replace("-","",$rep);
  24. $data = new Member();
  25. $data->name = str_replace("'","",$request->name);
  26. $data->jenis_kelamin = $request->jenis_kelamin;
  27. $data->email = $request->email;
  28. $data->telp = $rep2;
  29. $data->tanggal_masuk = date("Y-m-d H:i:s");
  30. $data->alamat = '';
  31. $data->status_aktif = 1;
  32. $data->save();
  33. // $exp = explode(" ",str_replace("'","",$request->name));
  34. // $characters = '0123456789';
  35. // $pin = mt_rand(1, 999);
  36. // if(count($exp) > 1){
  37. // $username = $exp[0].'.'.$exp[1].''.$pin;
  38. // }else if(count($exp) == 1){
  39. // $username = $exp[0].''.$pin;
  40. // }
  41. $data2 = new Users();
  42. $data2->username = strtolower($request->email);
  43. $data2->password = bcrypt($request->password);
  44. $data2->fullname = $request->name;
  45. $data2->status_active = 1;
  46. $data2->member_id = $data->id;
  47. $data2->group = 'member';
  48. $data2->save();
  49. Session::put('member_id',$data->id);
  50. Session::put('group',$data2->group);
  51. Session::put('name',$data->name);
  52. Session::put('is_active',1);
  53. Session::put('login',TRUE);
  54. $redirect_url = 'pg_dashboard';
  55. return redirect($redirect_url)->with(['success' => 'Registrasi Berhasil !']);
  56. }
  57. }
  58. public function login()
  59. {
  60. $data['data'] = '';
  61. return view('login')->with($data);
  62. }
  63. public function loginPost(Request $request){
  64. $username = $request->username;
  65. $password = $request->password;
  66. $count = Users::where('username',$username)->where('status_active',1)->count();
  67. if($count > 0){
  68. $data = Users::where('username',$username)->first();
  69. if($data->group == "member"){
  70. $member = DB::table('member')->where('id',$data->member_id)->first();
  71. $member_id = $member->id;
  72. $is_active = $member->status_aktif;
  73. $fullname = $member->name;
  74. $foto = $member->foto;
  75. $redirect = 'pg_dashboard';
  76. }else{
  77. $users = DB::table('users')->where('username',$username)->first();
  78. $member_id = $users->id;
  79. $fullname = $users->fullname;
  80. $is_active = $users->status_active;
  81. $foto = '';
  82. $redirect = 'dashboard';
  83. }
  84. if(Hash::check($password,$data->password)){
  85. Session::put('foto',$foto);
  86. Session::put('member_id',$member_id);
  87. Session::put('is_active',$is_active);
  88. Session::put('group',$data->group);
  89. Session::put('name',$data->fullname);
  90. Session::put('login',TRUE);
  91. return redirect($redirect)->with(['success' => 'Anda berhasil Login !']);
  92. }else{
  93. return redirect('/')->with(['error' => 'Password / Username Salah atau Akun anda belum aktif !']);
  94. }
  95. }else{
  96. return redirect('/')->with(['error' => 'Password / Username Salah atau Akun anda belum aktif !']);
  97. }
  98. }
  99. public function forgot()
  100. {
  101. return view('front.forgot');
  102. }
  103. public function forgot_action(Request $request){
  104. $check_siswa = Siswa::where('email',$request->email)->first();
  105. $check = Siswa::where('email',$request->email)->count();
  106. if($check > 0){
  107. $user = Users::where('user_id',$check_siswa->id)->where('status_active','1')->first();
  108. $name = $check_siswa->nama;
  109. $email = $check_siswa->email;
  110. $username = $user->username;
  111. $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  112. $pin = mt_rand(1000000, 9999999).$characters[rand(0, strlen($characters) - 1)];
  113. $string = str_shuffle($pin);
  114. $data = [
  115. 'name' => $name,
  116. 'email' => $email,
  117. 'username' => $username,
  118. 'password' => $string,
  119. 'base_url' => url('login'),
  120. ];
  121. Mail::send('emails.reset', $data, function ($mail) use($data)
  122. {
  123. $email_send = $data['email'];
  124. $name_send = $data['name'];
  125. $subject = 'Reset Password Berhasil';
  126. $mail->to($email_send, $name_send);
  127. $mail->subject($subject);
  128. });
  129. DB::table('users')->where('user_id',$check_siswa->id)->update([
  130. 'password' => bcrypt($string),
  131. ]);
  132. return redirect('forgot')->with(['success' => 'Password baru berhasil dikirim ke email, Silahkan cek email anda !']);
  133. }else{
  134. return redirect('forgot')->with(['error' => 'Email Belum Terdaftar atau Akun tidak aktif']);
  135. }
  136. }
  137. public function logout(){
  138. Session::flush();
  139. return redirect('/');
  140. }
  141. }