diff --git a/app/Http/Controllers/Auth/EsiScopeController.php b/app/Http/Controllers/Auth/EsiScopeController.php new file mode 100644 index 0000000..237658e --- /dev/null +++ b/app/Http/Controllers/Auth/EsiScopeController.php @@ -0,0 +1,28 @@ +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(); + } +} \ No newline at end of file diff --git a/resources/views/layouts/navbars/loggedout.blade.php b/resources/views/layouts/navbars/loggedout.blade.php index a0688bb..fc2dac1 100644 --- a/resources/views/layouts/navbars/loggedout.blade.php +++ b/resources/views/layouts/navbars/loggedout.blade.php @@ -1,16 +1,21 @@
- -
\ No newline at end of file + + \ No newline at end of file diff --git a/resources/views/scopes/select.blade.php b/resources/views/scopes/select.blade.php new file mode 100644 index 0000000..ea02f3c --- /dev/null +++ b/resources/views/scopes/select.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.b4') +@section('content') + +
+

Select Scopes for ESI

+ {!! Form::open(['action' => 'Auth\EsiScopeController@redirectToProvider', 'method' => 'POST']) !!} + @foreach($scopes as $scope) + @if($scope->scope == 'publicData') +
+ {{ Form::label('scopes[]', 'Public Data') }} + {{ Form::checkbox('scopes[]', 'publicData', 'true') }} +
+ + @break + @endif + @endforeach + @foreach($scopes as $scope) + @if($scope->scope == 'esi-contracts.read_corporation_contracts.v1') +
+ {{ Form::label('scopes[]', 'Corporate Contracts') }} + {{ Form::checkbox('scopes[]', 'esi-contracts.read_corporation_contracts.v1') }} +
+ + @endif + @endforeach + + @if($publicData == false) +
+ {{ Form::label('scopes[]', 'Public Data') }} + {{ Form::checkbox('scopes[]', 'publicData') }} +
+ @endif + @if($corpContracts == false) +
+ {{ Form::label('scopes[]', 'Corporate Contracts') }} + {{ Form::checkbox('scopes[]', 'esi-contracts.read_corporation_contracts.v1') }} +
+ @endif + {{ Form::submit('Submit', ['class' => 'btn btn-primary']) }} + {!! Form::close() !!} +
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 4fdba4b..842bd0c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -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');