added new middleware called Callback

added role in the user database
added new function hasRole in user model
added new function getUserType in user model
modified registration to handle new column in user model
This commit is contained in:
2018-11-04 13:44:35 -06:00
parent 3d21d66dee
commit 156fe97c05
7 changed files with 74 additions and 1 deletions

View File

@@ -117,6 +117,15 @@ class LoginController extends Controller
} else {
//Get what type of account the user should have
$accountType = $this->getAccountType(null, $eve_user->getId());
if($accountType == 'Guest') {
$role = 'Guest';
} else if($accountType == 'Legacy'){
$role = 'Legacy';
} else if($accountType == 'W4RP') {
$role = 'W4RP';
} else {
$role = 'None';
}
//Create a user account
return User::create([
'name' => $eve_user->getName(),
@@ -127,6 +136,7 @@ class LoginController extends Controller
'expires_in' => $eve_user->expiresIn,
'access_token' => $eve_user->token,
'user_type' => $accountType,
'role' => $role,
]);
}
}

View File

@@ -60,5 +60,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'callback' => \App\Http\Middleware\Callback::class,
];
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Socialite;
use DB;
use App\User;
use Seat\Eseye\Cache\NullCache;
use Seat\Eseye\Configuration;
use Seat\Eseye\Containers\EsiAuthentication;
use Seat\Eseye\Eseye;
class Callback
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
return $next($request);
}
}

View File

@@ -26,6 +26,26 @@ class AuthServiceProvider extends ServiceProvider
{
$this->registerPolicies($gate);
$gate->define('isSuperAdmin', function($user) {
return $user->hasRole('SuperAdmin') == 'SuperAdmin';
});
$gate->define('isAdmin', function($user) {
return $user->hasRole('Admin') == 'Admin';
});
$gate->define('isUser', function($user) {
return $user->hasRole('User') == 'User';
});
$gate->define('isLegacy', function($user) {
return $user->hasRole('Legacy') == 'Legacy';
});
$gate->define('isGuest', function($user) {
return $user->hasRole('Guest') == 'Guest';
});
/*
$gate->define('isSuperAdmin', function($user) {
return $user->user_type == 'SuperAdmin';
});
@@ -45,5 +65,6 @@ class AuthServiceProvider extends ServiceProvider
$gate->define('isGuest', function($user) {
return $user->user_type == 'Guest';
});
*/
}
}

View File

@@ -27,6 +27,7 @@ class User extends Authenticatable
'refresh_token',
'user_type',
'scopes',
'role',
];
protected $table = 'users';
@@ -41,4 +42,13 @@ class User extends Authenticatable
];
protected $guarded = [];
public function hasRole($role)
{
return User::where('role', $role)->get();
}
public function getUserType() {
return User::where('user_type')->get();
}
}

View File

@@ -24,6 +24,7 @@ class CreateUsersTable extends Migration
$table->integer('expires_in')->default(0);
$table->string('owner_hash');
$table->string('user_type')->default('Guest');
$table->string('role')->default('Guest');
$table->text('scopes')->default('publicData');
$table->string('email')->unique()->nullable();
$table->timestamp('email_verified_at')->nullable();

View File

@@ -18,7 +18,7 @@ Route::get('/', function () {
Auth::routes();
//Login display pages
Route::get('/login', 'Auth\LoginController@redirectToProvider')->name('login');
Route::get('/callback', 'Auth\LoginController@handleProviderCallback');
Route::get('/callback', 'Auth\LoginController@handleProviderCallback')->middleware('callback');
Route::get('/logout', 'Auth\LoginController@logout');
//Dashboard Controller Display pages
Route::get('/dashboard', 'DashboardController@index');