use laratrust to replace entrust #78

This commit is contained in:
Nabeel Shahzad
2017-12-15 12:36:13 -06:00
parent 936349cbeb
commit 5bedbba2a7
18 changed files with 501 additions and 295 deletions

View File

@@ -6,7 +6,6 @@ use Faker\Generator as Faker;
* Add any number of airports. Don't really care if they're real or not
*/
$factory->define(App\Models\Airport::class, function (Faker $faker) {
return [
'id' => strtoupper($faker->unique()->text(5)),
'icao' => function(array $apt) { return $apt['id']; },

View File

@@ -37,68 +37,6 @@ class CreateUsersTable extends Migration
$table->index('email');
$table->index('api_key');
});
// Create table for storing roles
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
// Create table for associating roles to users (Many-to-Many)
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->unsignedInteger('role_id');
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'role_id']);
$table->index(['role_id', 'user_id']);
});
// Create table for storing permissions
Schema::create('permissions', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
// Create table for associating permissions to roles (Many-to-Many)
Schema::create('permission_role', function (Blueprint $table) {
$table->unsignedInteger('permission_id');
$table->unsignedInteger('role_id');
$table->foreign('permission_id')->references('id')->on('permissions')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['permission_id', 'role_id']);
});
# create a default user/role
$roles = [
[
'id' => 1,
'name' => 'admin',
'display_name' => 'Administrators',
],
[
'id' => 2,
'name' => 'user',
'display_name' => 'Pilot'
],
];
$this->addData('roles', $roles);
}
/**
@@ -109,9 +47,5 @@ class CreateUsersTable extends Migration
public function down()
{
Schema::dropIfExists('users');
Schema::dropIfExists('permission_role');
Schema::dropIfExists('permissions');
Schema::dropIfExists('role_user');
Schema::dropIfExists('roles');
}
}

View File

@@ -0,0 +1,101 @@
<?php
use App\Models\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class RolesPermissionsTables extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// Create table for storing roles
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
// Create table for storing permissions
Schema::create('permissions', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
// Create table for associating roles to users and teams (Many To Many Polymorphic)
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedInteger('role_id');
$table->unsignedInteger('user_id');
$table->string('user_type');
$table->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'role_id', 'user_type']);
});
// Create table for associating permissions to users (Many To Many Polymorphic)
Schema::create('permission_user', function (Blueprint $table) {
$table->unsignedInteger('permission_id');
$table->unsignedInteger('user_id');
$table->string('user_type');
$table->foreign('permission_id')->references('id')->on('permissions')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'permission_id', 'user_type']);
});
// Create table for associating permissions to roles (Many-to-Many)
Schema::create('permission_role', function (Blueprint $table) {
$table->unsignedInteger('permission_id');
$table->unsignedInteger('role_id');
$table->foreign('permission_id')->references('id')->on('permissions')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['permission_id', 'role_id']);
});
# create a default user/role
$roles = [
[
'id' => 1,
'name' => 'admin',
'display_name' => 'Administrators',
],
[
'id' => 2,
'name' => 'user',
'display_name' => 'Pilot'
],
];
$this->addData('roles', $roles);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('permission_user');
Schema::dropIfExists('permission_role');
Schema::dropIfExists('permissions');
Schema::dropIfExists('role_user');
Schema::dropIfExists('roles');
}
}

View File

@@ -55,12 +55,16 @@ users:
role_user:
- user_id: 1
role_id: 1
user_type: App\Models\User
- user_id: 1
role_id: 2
user_type: App\Models\User
- user_id: 2
role_id: 2
user_type: App\Models\User
- user_id: 3
role_id: 2
user_type: App\Models\User
# ranks
ranks:

View File

@@ -54,8 +54,8 @@ class Kernel extends HttpKernel
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
#'role' => \Laratrust\Middleware\LaratrustRole::class,
#'permission' => \Laratrust\Middleware\LaratrustPermission::class,
#'ability' => \Laratrust\Middleware\LaratrustAbility::class,
];
}

View File

@@ -18,7 +18,7 @@ class RedirectIfAuthenticated
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
return redirect('/');
}
return $next($request);

View File

@@ -1,8 +1,8 @@
<?php
namespace App\Models;
use Zizaco\Entrust\EntrustPermission;
use Laratrust\Models\LaratrustPermission;
class Permission extends EntrustPermission
class Permission extends LaratrustPermission
{
}

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Models;
use Zizaco\Entrust\EntrustRole;
use Laratrust\Models\LaratrustRole;
class Role extends EntrustRole
class Role extends LaratrustRole
{
}

View File

@@ -4,7 +4,7 @@ namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Zizaco\Entrust\Traits\EntrustUserTrait;
use Laratrust\Traits\LaratrustUserTrait;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Contracts\Auth\CanResetPassword;
@@ -20,12 +20,12 @@ use Illuminate\Contracts\Auth\CanResetPassword;
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @mixin \Illuminate\Notifications\Notifiable
* @mixin \Zizaco\Entrust\Traits\EntrustUserTrait
* @mixin \Laratrust\Traits\LaratrustUserTrait
*/
class User extends Authenticatable
{
use Notifiable;
use EntrustUserTrait;
use LaratrustUserTrait;
//use SoftDeletes;
public $table = 'users';

View File

@@ -60,11 +60,11 @@ class DatabaseService extends BaseService
}
}
try {
#try {
DB::table($table)->insert($row);
} catch(QueryException $e) {
Log::info($e->getMessage());
}
#} catch(QueryException $e) {
# Log::info($e->getMessage());
#}
}
}
}