esi scope stuff

This commit is contained in:
2019-10-11 20:16:19 -05:00
parent cd3872b6b8
commit e2fbec0288
4 changed files with 99 additions and 15 deletions

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
use Socialite;
use Auth;
use App\Models\User\User;
class EsiScopeController extends Controller
{
public function __construct() {
$this->middleware('auth');
$this->middleware('role:User');
}
public function displayScopes() {
//Get the ESI Scopes for the user
$scopes = DB::table('EsiScopes')->where('character_id', Auth::user()->character_id)->get();
return view('scopes.select')->with('scopes', $scopes);
}
public function redirectToProvider(Request $request) {
//Redirect to the socialite provider
return Socialite::driver('eveonline')->setScopes($request->scopes)->redirect();
}
}

View File

@@ -1,16 +1,21 @@
<div class="container-fluid">
<nav class="navbar navbar-expand-sm navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/">United Hauling</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdoownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Hauling</a>
<div class="dropdown-menu" aria-labelledby="navbarDropDownMenuLink">
<a class="dropdown-item" href="/">Hauling Form</a>
</div>
</li>
</ul>
</nav>
</div>
<nav class="navbar navbar-expand-sm navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/">United Hauling</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdoownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Hauling</a>
<div class="dropdown-menu" aria-labelledby="navbarDropDownMenuLink">
<a class="dropdown-item" href="/">Hauling Form</a>
</div>
</li>
</ul>
<ul class="navbar-nav m1-auto">
<li class="nav-item">
<a class="nav-link" href="/scopes/select">Add Esi Scopes</a>
</li>
</ul>
</nav>
</div>

View File

@@ -0,0 +1,45 @@
@extends('layouts.b4')
@section('content')
<?php
$publicData = false;
$corpContracts = false;
?>
<div class="container">
<h2>Select Scopes for ESI</h2>
{!! Form::open(['action' => 'Auth\EsiScopeController@redirectToProvider', 'method' => 'POST']) !!}
@foreach($scopes as $scope)
@if($scope->scope == 'publicData')
<div class="form-group col-md-6">
{{ Form::label('scopes[]', 'Public Data') }}
{{ Form::checkbox('scopes[]', 'publicData', 'true') }}
</div>
<?php $publicData = true; ?>
@break
@endif
@endforeach
@foreach($scopes as $scope)
@if($scope->scope == 'esi-contracts.read_corporation_contracts.v1')
<div class="form-group col-md-6">
{{ Form::label('scopes[]', 'Corporate Contracts') }}
{{ Form::checkbox('scopes[]', 'esi-contracts.read_corporation_contracts.v1') }}
</div>
<?php $corpContracts = true; ?>
@endif
@endforeach
@if($publicData == false)
<div class="form-group col-md-6">
{{ Form::label('scopes[]', 'Public Data') }}
{{ Form::checkbox('scopes[]', 'publicData') }}
</div>
@endif
@if($corpContracts == false)
<div class="form-group col-md-6">
{{ Form::label('scopes[]', 'Corporate Contracts') }}
{{ Form::checkbox('scopes[]', 'esi-contracts.read_corporation_contracts.v1') }}
</div>
@endif
{{ Form::submit('Submit', ['class' => 'btn btn-primary']) }}
{!! Form::close() !!}
</div>
@endsection

View File

@@ -37,3 +37,9 @@ Route::group(['middleware' => ['guest']], function() {
Route::get('/login', 'Auth\LoginController@redirectToProvider')->name('login');
Route::get('/callback', 'Auth\LoginController@handleProviderCallback')->name('callback');
Route::get('/logout', 'Auth\LoginController@logout')->name('logout');
/**
* Scopes Controller display pages
*/
Route::get('/scopes/select', 'Auth\EsiScopeController@displayScopes');
Route::post('redirectToProvider', 'Auth\EsiScopeController@redirectToProvider');