Dashboard sipadu mbip
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

LoginController.php 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Support\Facades\Auth;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Log;
  7. use App\Model\Staff;
  8. use Carbon\Carbon;
  9. Use Hash;
  10. use Session;
  11. class LoginController extends Controller
  12. {
  13. /*
  14. |--------------------------------------------------------------------------
  15. | Login Controller
  16. |--------------------------------------------------------------------------
  17. |
  18. | This controller handles authenticating users for the application and
  19. | redirecting them to your home screen. The controller uses a trait
  20. | to conveniently provide its functionality to your applications.
  21. |
  22. */
  23. /**
  24. * Create a get_guard controller for multiple user
  25. *
  26. * @return guard
  27. */
  28. public function get_guard(){
  29. if(Auth::guard('sadmin')->check())
  30. {return "sadmin";}
  31. elseif(Auth::guard('ofr')->check())
  32. {return "ofr";}
  33. }
  34. /**
  35. * Create a request login controller for multiple user
  36. *
  37. * @return guard
  38. */
  39. public function requestLogin(Request $request) {
  40. $this->validate($request, [
  41. 'no_badan' => 'required',
  42. 'password' => 'required|min:6'
  43. ]);
  44. $rememberMe = false; $user = '';
  45. if ($request->has('remember')) {
  46. $rememberMe = true;
  47. }
  48. try {
  49. $message = trans('messages.invalid_login_credentials');
  50. $access = explode ("/", $request->roles_access);
  51. $user = Staff::where('no_badan', $request->no_badan)->where(function($q) use($access){
  52. $q->where('roles_access',$access[0])->orWhere('roles_access',$access[1]);
  53. })->first();
  54. if (!empty($user)) {
  55. if(Hash::check($request->password, $user->password)){
  56. // Update last_login & last ip
  57. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  58. $user->last_login_ip = $request->getClientIp();
  59. $user->authorized = true;
  60. $user->token_firebase = '';
  61. $user->save();
  62. // Proceed to Login
  63. if($user->roles_access == 'sysadmin' || $user->roles_access == 'Ketua Jabatan' || $user->roles_access == "PenguatKuasa"){
  64. Auth::guard('sadmin')->loginUsingId($user->_id, $rememberMe);
  65. return redirect('/main/index');
  66. }else if($user->roles_access == 'psysadmin' || $user->roles_access == 'Pegawai'){
  67. Auth::guard('ofr')->loginUsingId($user->_id, $rememberMe);
  68. return redirect('/officer/index');
  69. }
  70. }
  71. }
  72. }catch (\Exception $e) {
  73. Log::error(__CLASS__ . "::" . __METHOD__ . " " . $e->getMessage() . "on line" . $e->getLine());
  74. }
  75. return redirect('/')->with('error_msg', $message);
  76. }
  77. public function requestLogout(){
  78. $id = Auth::guard($this->get_guard())->id();
  79. $user = Staff::find($id);
  80. // Update last_login & last ip
  81. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  82. $user->last_login_ip = \Request::getClientIp();
  83. $user->authorized = false;
  84. $user->save();
  85. // Proceed to Log Out
  86. $log = Auth::guard($this->get_guard())->logout();
  87. Session::flush();
  88. return redirect('/');
  89. }
  90. }