You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LoginController.php 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Dealer;
  4. Use App\StaffLaravel;
  5. Use Hash;
  6. use Carbon\Carbon;
  7. use Gate;
  8. use Illuminate\Http\Request;
  9. use App\Http\Controllers\Controller;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Log;
  12. class LoginController extends Controller
  13. {
  14. //
  15. public function get_guard(){
  16. if(Auth::guard('ds')->check())
  17. {return "ds";}
  18. elseif(Auth::guard('agent')->check())
  19. {return "agent";}
  20. elseif(Auth::guard('ms')->check())
  21. {return "ms";}
  22. }
  23. public function showFormStaff(){
  24. return view('login');
  25. }
  26. public function encryptPassword($action, $string) {
  27. $output = false;
  28. $encrypt_method = "AES-256-CBC";
  29. $secret_key = '28472B4B6250655368566D5970337336';
  30. $secret_iv = md5(md5($string)); //'This is my secret iv';
  31. // hash
  32. $key = hash('sha256', $secret_key);
  33. $iv = substr(hash('sha256', $secret_iv), 0, 16);
  34. if ( $action == 'encrypt' ) {
  35. $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
  36. $output = base64_encode($output);
  37. } else if( $action == 'decrypt' ) {
  38. $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
  39. }
  40. return $output;
  41. }
  42. public function requestLoginStaff(Request $request) {
  43. $this->validate($request, [
  44. 'email' => 'required|email',
  45. 'password' => 'required|min:6'
  46. ]);
  47. $user = '';
  48. try {
  49. $message = trans('messages.invalid_login_credentials');
  50. $rememberMe = false;
  51. $user = Dealer::where('email', $request->email)->first();
  52. if (!empty($user)) {
  53. if($this->encryptPassword('encrypt', $request->password) == $user->password){
  54. // Update last_login & last ip
  55. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  56. $user->last_login_ip = $request->getClientIp();
  57. $user->password2 = Hash::make($request->password);
  58. $user->save();
  59. if($user->roles_access == "Dealer"){
  60. Auth::guard('ds')->loginUsingId($user->_id, $rememberMe);
  61. return redirect('/Dealer');
  62. }else if($user->roles_access == "Sales"){
  63. Auth::guard('agent')->loginUsingId($user->_id, $rememberMe);
  64. return redirect('/sales');
  65. }else if($user->roles_access == "Marketing"){
  66. Auth::guard('ms')->loginUsingId($user->_id, $rememberMe);
  67. return redirect('/Marketing');
  68. }
  69. }
  70. }
  71. } catch (\Exception $e) {
  72. Log::error(__CLASS__ . "::" . __METHOD__ . " " . $e->getMessage() . "on line" . $e->getLine());
  73. }
  74. return redirect('/login/dashboard')->with('error_msg', $message);
  75. }
  76. public function logout(){
  77. // Get Current member id
  78. $id = Auth::guard($this->get_guard())->id();
  79. if (Auth::guard($this->get_guard())->check()) {
  80. $user = Dealer::find($id);
  81. // Update last_login & last ip
  82. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  83. $user->last_login_ip = \Request::getClientIp();
  84. $user->save();
  85. // Proceed to Log Out
  86. Auth::guard($this->get_guard())->logout();
  87. // return redirect('/login/dashboard');
  88. return redirect('http://db.citybroadband.my');
  89. }
  90. }
  91. public function hmmm() {
  92. $output = $this->encryptPassword('encrypt', 'sdallotech');
  93. $encrP2 = Hash::make('sdallotech');
  94. dd($encrP2);
  95. }
  96. }