/home/mip/mip/app/Modules/Employer/Middleware/Authenticate.php
<?php
namespace QxCMS\Modules\Employer\Middleware;
use Closure;
use Config;
use Illuminate\Support\Facades\Auth;
use QxCMS\Modules\Likod\Models\Clients\Client;
class Authenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = 'employer')
{
$root_dir = strtolower(session('root_dir'));
$new_root_dir = strtolower($request->segment(2));
if($root_dir == '') {
$root_dir = $new_root_dir;
session(['root_dir' => $root_dir]);
}
if($root_dir != $new_root_dir) return redirect()->route('employer.logout', $root_dir);
$client = new Client;
$config = $client->where('root_dir', $root_dir)->get()->first();
if(count($config) <= 0) return response()->view('errors.404', [], 500);
config(['auth.defaults.guard' => $guard]);
Config::set('database.connections.client', array(
'driver' => 'mysql',
'host' => $config->database_host,
'database' => 'myradh_'. $config->database_name,
'username' => $config->database_username,
'password' => $config->database_password,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
));
Config::set('filesystems.disks.s3', array(
'driver' => 's3',
'key' => $config->s3_key,
'secret' => $config->s3_secret,
'region' => $config->s3_region,
'bucket' => $config->s3_bucket_name,
'scheme' => 'http',
));
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('employer/'.$new_root_dir.'/auth/login');
}
}
return $next($request);
}
}