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:
@@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
30
app/Http/Middleware/Callback.php
Normal file
30
app/Http/Middleware/Callback.php
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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';
|
||||
});
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
10
app/User.php
10
app/User.php
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user