Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

StaffLoginController.php 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. Use App\Staff;
  4. Use App\Model\StaffDetail;
  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 StaffLoginController 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. }
  21. public function showFormStaff(){
  22. return view('login');
  23. }
  24. public function encryptPassword($action, $string) {
  25. $output = false;
  26. $encrypt_method = "AES-256-CBC";
  27. $secret_key = '28472B4B6250655368566D5970337336';
  28. $secret_iv = md5(md5($string)); //'This is my secret iv';
  29. // hash
  30. $key = hash('sha256', $secret_key);
  31. $iv = substr(hash('sha256', $secret_iv), 0, 16);
  32. if ( $action == 'encrypt' ) {
  33. $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
  34. $output = base64_encode($output);
  35. } else if( $action == 'decrypt' ) {
  36. $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
  37. }
  38. return $output;
  39. }
  40. public function requestLoginStaff(Request $request) {
  41. $this->validate($request, [
  42. 'email' => 'required|email',
  43. 'password' => 'required|min:5'
  44. ]);
  45. $user = '';
  46. try {
  47. $message = trans('messages.invalid_login_credentials');
  48. $rememberMe = false;
  49. $user = Staff::where('email', $request->email)->where('roles_access','!=','Installer')->first();
  50. if (!empty($user)) {
  51. if($this->encryptPassword('encrypt', $request->password) == $user->password || $this->encryptPassword('encrypt', $request->password) == $user->password2){
  52. // Update last_login & last ip
  53. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  54. $user->last_login_ip = $request->getClientIp();
  55. $user->save();
  56. if($user->roles_access == "Dealer"){
  57. Auth::guard('ds')->loginUsingId($user->_id, $rememberMe);
  58. if (Carbon::now()->diffInDays($user->created_at) >= 90) {
  59. return $this->expired($user->_id);
  60. }else{
  61. return redirect('/dealer');
  62. }
  63. }else if($user->roles_access == "Sales"){
  64. Auth::guard('agent')->loginUsingId($user->_id, $rememberMe);
  65. if (Carbon::now()->diffInDays($user->created_at) >= 90) {
  66. return $this->expired($user->_id);
  67. }else{
  68. return redirect('/sales');
  69. }
  70. }
  71. }
  72. }
  73. } catch (\Exception $e) {
  74. Log::error(__CLASS__ . "::" . __METHOD__ . " " . $e->getMessage() . "on line" . $e->getLine());
  75. }
  76. return redirect('/login/dashboard/staff')->with('error_msg', $message);
  77. }
  78. public function requestlogout(){
  79. // Get Current member id
  80. $id = Auth::guard($this->get_guard())->id();
  81. if (Auth::guard($this->get_guard())->check()) {
  82. $user = Staff::find($id);
  83. // Update last_login & last ip
  84. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  85. $user->last_login_ip = \Request::getClientIp();
  86. $user->save();
  87. // Proceed to Log Out
  88. Auth::guard($this->get_guard())->logout();
  89. return redirect('/');
  90. // return redirect('http://cbb.swisslink.com.my/v2/');
  91. // return redirect('/login/dashboard/staff');
  92. }
  93. }
  94. public function hmmm() {
  95. $output = $this->encryptPassword('encrypt', 'admin123');
  96. dd($output);
  97. }
  98. public function expired($_id)
  99. {
  100. $user = Staff::where('_id',$_id)->first();
  101. return view('expiredPassword', compact ('user'));
  102. }
  103. public function postExpired(Request $request)
  104. {
  105. $user = Staff::where('_id',$request->_id)->first();
  106. $user->password = $this->encryptPassword('encrypt', $request->password);
  107. $user->created_at = Carbon::now()->toDateTimeString();
  108. $user->save();
  109. if($user->roles_access == "Dealer"){
  110. return redirect('/dealer');
  111. }
  112. else if($user->roles_access == "Sales"){
  113. return redirect('/sales');
  114. }
  115. }
  116. }