Guest User

Untitled

a guest
Jan 12th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. <?php
  2. namespace AppHttpControllers;
  3. use AppHttpControllersController;
  4. use IlluminateFoundationAuthAuthenticatesUsers;
  5. use IlluminateHttpRequest;
  6. use IlluminateSupportFacadesAuth;
  7. class LoginController extends Controller
  8. {
  9. use AuthenticatesUsers;
  10. protected $username = 'username';
  11. protected $redirectTo = '/dashboard';
  12. protected $guard = 'web';
  13. public function getLogin()
  14. {
  15. if (Auth::guard('web')->check())
  16. {
  17. return redirect()->route('dashboard');
  18. }
  19. return view('login');
  20. }
  21. public function postLogin(Request $request)
  22. {
  23. $auth = Auth::guard('web')->attempt(['username' => $request->username, 'password' => $request->password, 'active' => 1]);
  24. if ($auth)
  25. {
  26. return redirect()->route('dashboard');
  27. }
  28. return redirect()->route('/');
  29. }
  30. public function getLogout()
  31. {
  32. Auth::guard('web')->logout();
  33. return redirect()->route('/');
  34. }
  35. }
  36.  
  37. Route::get('/', ['as' => '/', 'uses' => 'LoginController@getLogin']);
  38. Route::get('/login', ['as' => 'login', 'uses' => 'LoginController@getLogin']);
  39.  
  40. Route::group(['middleware' => ['autheticates', 'roles']], function (){
  41. Route::get('/logout', ['as' => 'logout', 'uses' => 'LoginController@getLogout']);
  42. Route::get('/dashboard', ['as' => 'dashboard', 'uses' => 'DashboardController@dashboard']);
  43. });
  44.  
  45. class Autheticates
  46. {
  47. public function handle($request, Closure $next, $guard = 'web')
  48. {
  49. if (!Auth::guard($guard)->check())
  50. {
  51. return redirect()->route('/');
  52. }
  53. return $next($request);
  54. }
  55. }
  56.  
  57. class Roles
  58. {
  59. public function handle($request, Closure $next)
  60. {
  61. $roles = $this->getRequiredRoleForRoute($request->route());
  62. if ($request->user()->hasRole($roles) || $roles){
  63. return $next($request);
  64. }
  65. return redirect()->route('noPermissions');
  66. }
  67. private function getRequiredRoleForRoute($route)
  68. {
  69. $actions = $route->getAction();
  70. return isset($actions['roles']) ? $actions['roles'] : null;
  71. }
  72. }
  73.  
  74. <form class="login-form" action="{{ route('login') }}" method="post">
  75. {{ csrf_field() }}
  76. <div class="login-wrap">
  77. <p class="login-img"><i class="icon_lock_alt"></i></p>
  78. <div class="input-group">
  79. <span class="input-group-addon"><i class="icon_profile"></i></span>
  80. <input type="text" name="username" class="form-control" placeholder="Username" autofocus>
  81. </div>
  82. <div class="input-group">
  83. <span class="input-group-addon"><i class="icon_key_alt"></i></span>
  84. <input type="password" name="password" class="form-control" placeholder="Password">
  85. </div>
  86. <label class="checkbox">
  87. <input type="checkbox" value="remember-me"> Remember me
  88. <span class="pull-right"> <a href="#"> Forgot Password?</a></span>
  89. </label>
  90. <button class="btn btn-primary btn-lg btn-block" type="submit">Login</button>
  91. <button class="btn btn-info btn-lg btn-block" type="reset">Signup</button>
  92. </div>
  93. </form>
Add Comment
Please, Sign In to add comment