Advertisement
Guest User

ElevationController // laravel 5 multi auth

a guest
Jul 2nd, 2017
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.17 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Copyright © 2017
  4.  * "App" - Brought to you by:
  5.  * ___________                    ________                       __
  6.  * \__    ___/___ _____    _____  \_____  \  __ _______    _____/  |_ __ __  _____
  7.  *   |    |_/ __ \\__  \  /     \  /  / \  \|  |  \__  \  /    \   __\  |  \/     \
  8.  *   |    |\  ___/ / __ \|  Y Y  \/   \_/.  \  |  // __ \|   |  \  | |  |  /  Y Y  \
  9.  *   |____| \___  >____  /__|_|  /\_____\ \_/____/(____  /___|  /__| |____/|__|_|  /
  10.  *              \/     \/      \/        \__>          \/     \/                 \/
  11.  *                          https://github.com/Team-Quantum
  12.  *                      .PolluX / https://github.com/RealPolluX
  13.  *                            Created @ 2017-06-30 - 21:02 PM
  14.  */
  15.  
  16. // https://laracasts.com/discuss/channels/laravel/replacing-the-laravel-authentication-with-a-custom-authentication
  17. // https://jamesmcfadden.co.uk/custom-authentication-in-laravel-with-guards-and-user-service-providers
  18. // http://imrealashu.in/code/laravel/multi-auth-with-laravel-5-2-2/
  19. // https://github.com/jayminpanchal/laravel-multiauth
  20.  
  21. namespace App\Http\Controllers\Auth;
  22.  
  23. use App\Admin;
  24. use App\Database;
  25. use Illuminate\Http\Request;
  26. use Illuminate\Support\Facades\Auth;
  27. use App\Http\Controllers\Controller;
  28. use Validator;
  29. use Illuminate\Foundation\Auth\AuthenticatesUsers;
  30.  
  31. class ElevationController extends Controller
  32. {
  33.     /*
  34.     |--------------------------------------------------------------------------
  35.     | Elevation Controller
  36.     |--------------------------------------------------------------------------
  37.     |
  38.     | This controller handles the administration pages access via a
  39.     | second authentication (named 'elevation').
  40.     |
  41.     */
  42.  
  43.     use AuthenticatesUsers;
  44.  
  45.     protected $loginView = 'auth.admin.login';
  46.  
  47.     /**
  48.      * Where to redirect users after login.
  49.      *
  50.      * @var string
  51.      */
  52.     protected $redirectTo = '/admin/dashboard';
  53.  
  54.     private $db;
  55.  
  56.     // ####################################################################################################
  57.  
  58.     public function showLoginForm()
  59.     {
  60.         return view('auth.admin.login');
  61.     }
  62.  
  63.     /**
  64.      * Get a validator for an incoming registration request.
  65.      *
  66.      * @param  Request  $request
  67.      */
  68.     protected function validateLogin(Request $request)
  69.     {
  70.         $this->validate($request, [
  71.             $this->username()  =>  'required|string|min:3',
  72.             'mToken' => 'required|string|min:8',
  73.             'g-recaptcha-response' => 'required|captcha'
  74.         ]);
  75.     }
  76.  
  77.     public function username()
  78.     {
  79.         return 'mAccount';
  80.     }
  81.  
  82.     protected function guard()
  83.     {
  84.         return Auth::guard('admin');
  85.     }
  86.  
  87.     /**
  88.      * Get the needed authorization credentials from the request.
  89.      *
  90.      * @param  \Illuminate\Http\Request  $request
  91.      * @return array
  92.      */
  93.     protected function credentials(Request $request)
  94.     {
  95.         return $request->only($this->username(), 'token');
  96.     }
  97.  
  98.     // ####################################################################################################
  99.  
  100.     public function __construct()
  101.     {
  102.         //$this->middleware('admin')->except('demote');
  103.  
  104.         $this->db = new Database(config('database.connections.common.host'),
  105.             config('database.connections.common.username'), config('database.connections.common.password'),
  106.             config('database.connections.common.database'), config('database.connections.common.port'),
  107.             config('database.connections.common.charset'));
  108.     }
  109.  
  110.       public function elevate(Request $request)
  111.       {
  112.           // login
  113.           $data['name'] = Auth::guard('web')->user()->login;
  114.           $data['token'] = $request->input('token');
  115.           $data['g-recaptcha-response'] = $request->input('g-recaptcha-response');
  116.  
  117.           if($this->validateLogin($request))
  118.           {
  119.               $result = $this->db
  120.                   ->objectBuilder()
  121.                   ->where('mToken', $data['token'])
  122.                   ->get('common.gmlist');
  123.  
  124.               if(count($result) > 0)
  125.               {
  126.                   if(Auth::attempt([
  127.                       'mName' => $data['name'],
  128.                       'mToken'  => $data['token']
  129.                       ]))
  130.                   {
  131.                       redirect('/admin/dashboard');
  132.                   }
  133.               }
  134.               else{
  135.                   $storage = 'used data was: token->"'.$data['token'].'" and name->"'.$data['name'].'".';
  136.                   throw new \ErrorException('Elevation failed! :: '.$storage);
  137.               }
  138.           }
  139.       }
  140.  
  141.     /*public function elevate(Request $request){
  142.         $this->login($request);
  143.     }*/
  144.  
  145.     public function demote(Request $request)
  146.     {
  147.         // logout
  148.         $this->guard()->logout();
  149.         $request->session()->flush();
  150.         $request->session()->regenerate();
  151.  
  152.         return redirect('/admin/login');
  153.     }
  154.  
  155.     public static function getAuthorityLevel($mAuthority = 'USER')
  156.     {
  157.         $level = config('game.authority.'.$mAuthority);
  158.         if(!empty($level)){
  159.             return $level;
  160.         }
  161.  
  162.         return 0;
  163.     }
  164.  
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement