12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- use Illuminate\Database\Migrations\Migration;
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Support\Facades\Schema;
- class LaratrustSetupTables 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']);
- });
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('permission_user');
- Schema::dropIfExists('permission_role');
- Schema::dropIfExists('role_user');
- Schema::dropIfExists('permissions');
- Schema::dropIfExists('roles');
- Schema::dropIfExists('users');
- }
- }
|