library helpers
This commit is contained in:
42
app/Http/Controllers/Auth/EsiScopeController.php
Normal file
42
app/Http/Controllers/Auth/EsiScopeController.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EsiScopeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Class Construction
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->middleware('auth');
|
||||
$this->middleware('role:User');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the ESI scopes to choose from
|
||||
*
|
||||
* @return view
|
||||
*/
|
||||
public function displayScopes() {
|
||||
$scopes = EsiScope::where([
|
||||
'character_id' => Auth::user()->character_id,
|
||||
])->get();
|
||||
|
||||
return view('scopes.select')->with('scopes', $scopes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect to the provider
|
||||
*
|
||||
* @return Socialite
|
||||
*/
|
||||
public function redirectToProvider(Request $request) {
|
||||
return Socialite::driver('eveonline')->setScopes($request->scopes)->redirect();
|
||||
}
|
||||
|
||||
}
|
||||
132
app/Http/Controllers/Auth/LoginController.php
Normal file
132
app/Http/Controllers/Auth/LoginController.php
Normal file
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
//Internal Library
|
||||
use App\Library\Login\LoginHelper;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectto = '/dashboard';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->middleware('guest')->except(['logout',
|
||||
'handleProviderCallback',
|
||||
'redirectToProvider']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout function
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function logout() {
|
||||
Auth::logout();
|
||||
return redirect('/');
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect to the provider's website
|
||||
*
|
||||
* @return Socialite
|
||||
* @return character_owner_hash
|
||||
* @return character_name
|
||||
* @return character_id
|
||||
* @return token
|
||||
* @return refreshToken
|
||||
* @return expiresIn
|
||||
* @return user (Holds jwt)
|
||||
*/
|
||||
public function redirectToProvider() {
|
||||
//The default scope is public data for everyone due to OAuth2 Tokens
|
||||
//Add esi-mail.send_mail.v1 to send mails more efficiently
|
||||
$scopes = ['publicData', 'esi-mail.send_mail.v1'];
|
||||
|
||||
//Collect any other scopes from the database.
|
||||
//If we are logged in we are linking another character to this one.
|
||||
//Attempt to use the same scopes for this character as the original.
|
||||
if(Auth::check()) {
|
||||
$extrascopes = EsiScope::where([
|
||||
'character_id' => auth()->user()->getId();
|
||||
])->get(['scope']);
|
||||
|
||||
//Pop each scope onto the array of scopes
|
||||
foreach($extraScopes as $extra) {
|
||||
array_push($scopes, $extra->scope);
|
||||
}
|
||||
|
||||
/**
|
||||
* Place the scopes in the session.
|
||||
* Place the original character id in the session.
|
||||
*/
|
||||
session()->put('scopes', $scopes);
|
||||
session()->put('orgCharacter', auth()->user()->getId());
|
||||
}
|
||||
|
||||
return Socialite::driver('eveonline')->scopes($scopes)->redirect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get token from callback
|
||||
* Redirect to the dashboard if logging in successfully.
|
||||
*
|
||||
* @return redirect()
|
||||
*/
|
||||
public function handleProviderCallback(Socialite $social) {
|
||||
//Get the sso user from the socialite driver
|
||||
$ssoUser = $social->driver('eveonline')->user();
|
||||
|
||||
$scpSession = session()->pull('scopes');
|
||||
|
||||
//If the user was already logged in, let's do some checks to see if we are adding
|
||||
//additional scopes to the user's account
|
||||
if(Auth::check()) {
|
||||
//If we are logged in already and the session contains the original characters, then we are creating an alt
|
||||
//for the original character
|
||||
if(session()->has('orgCharacter')) {
|
||||
$orgCharacter = session()->pull('orgCharacter');
|
||||
|
||||
if(LoginHelper::createAlt($ssoUser, $orgCharacter)) {
|
||||
return redirect()->to('/profile')->with('success', 'Alt registered.');
|
||||
} else {
|
||||
return redirect()->to('/profile')->with('error', 'Unable to register alt or it was previously registered.');
|
||||
}
|
||||
} else {
|
||||
if(sizeof($ssoUser->scopes) > 1) {
|
||||
$tokenCount = EsiToken::where([
|
||||
'character_id' => $ssoUser->id,
|
||||
])->count();
|
||||
if($tokenCount > 0) {
|
||||
LoginHelper::UpdateEsiToken($ssoUser);
|
||||
} else {
|
||||
LoginHelper::SaveEsiToken($ssoUser);
|
||||
}
|
||||
LoginHelper::SetScopes($ssoUser->scopes, $ssoUser->id);
|
||||
return redirect()->to('/dashboard')->with('success', 'Successfully updated ESI scopes.');
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//If the user wasn't logged in, then create a new user
|
||||
$user = LoginHelper::createOrGetUser($ssoUser);
|
||||
//Login in the new user
|
||||
auth()->login($user, true);
|
||||
//Redirect back to the dashboard
|
||||
return redirect()->to('/dashboard')->with('success', 'Successfully Logged In.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
11
app/Http/Controllers/Contracts/SupplyChainController.php
Normal file
11
app/Http/Controllers/Contracts/SupplyChainController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Contracts;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SupplyChainController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Dashboard/AdminDashboardController.php
Normal file
11
app/Http/Controllers/Dashboard/AdminDashboardController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AdminDashboardController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Dashboard/DashboardController.php
Normal file
11
app/Http/Controllers/Dashboard/DashboardController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Finance/AllianceFinanceController.php
Normal file
11
app/Http/Controllers/Finance/AllianceFinanceController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Finance;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AllianceFinanceController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Finance;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CorporationFinanceController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Logistics/CitadelFuelController.php
Normal file
11
app/Http/Controllers/Logistics/CitadelFuelController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Logistics;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CitadelFuelController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Logistics/JumpBridgeFuelController.php
Normal file
11
app/Http/Controllers/Logistics/JumpBridgeFuelController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Logistics;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class JumpBridgeFuelController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/SRP/SRPAdminController.php
Normal file
11
app/Http/Controllers/SRP/SRPAdminController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\SRP;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SRPAdminController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/SRP/SRPController.php
Normal file
11
app/Http/Controllers/SRP/SRPController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\SRP;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SRPController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/CorporateAdminTaxes.php
Normal file
11
app/Http/Controllers/Taxes/CorporateAdminTaxes.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CorporateAdminTaxes extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/CorporateTaxes.php
Normal file
11
app/Http/Controllers/Taxes/CorporateTaxes.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CorporateTaxes extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/MiningTaxesAdminController.php
Normal file
11
app/Http/Controllers/Taxes/MiningTaxesAdminController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MiningTaxesAdminController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/MiningTaxesController.php
Normal file
11
app/Http/Controllers/Taxes/MiningTaxesController.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MiningTaxesController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/RattingAdminTaxes.php
Normal file
11
app/Http/Controllers/Taxes/RattingAdminTaxes.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RattingAdminTaxes extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
11
app/Http/Controllers/Taxes/RattingTaxes.php
Normal file
11
app/Http/Controllers/Taxes/RattingTaxes.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Taxes;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RattingTaxes extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
Reference in New Issue
Block a user