library helpers

This commit is contained in:
2026-02-18 22:42:12 -06:00
parent 0b13949caf
commit 3444174d6e
34 changed files with 4626 additions and 2 deletions

View 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();
}
}

View 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.');
}
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Contracts;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SupplyChainController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminDashboardController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Finance;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AllianceFinanceController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Finance;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CorporationFinanceController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Logistics;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CitadelFuelController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Logistics;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class JumpBridgeFuelController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\SRP;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SRPAdminController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\SRP;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SRPController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CorporateAdminTaxes extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CorporateTaxes extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MiningTaxesAdminController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MiningTaxesController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class RattingAdminTaxes extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\Taxes;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class RattingTaxes extends Controller
{
//
}