2026_05_06_212903_create_user_permissions_table.php 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. use Illuminate\Database\Migrations\Migration;
  3. use Illuminate\Database\Schema\Blueprint;
  4. use Illuminate\Support\Facades\Schema;
  5. return new class extends Migration
  6. {
  7. /**
  8. * Run the migrations.
  9. */
  10. // Индивидуальные разрешения/запреты на конкретные действия для пользователя.
  11. // action = 'allow' перекрывает ограничения роли; 'deny' — перекрывает разрешения роли.
  12. public function up(): void
  13. {
  14. Schema::create('user_permissions', function (Blueprint $table) {
  15. $table->id();
  16. $table->foreignId('user_id')->constrained()->cascadeOnDelete();
  17. $table->string('permission'); // ключ: 'cars.edit', 'pages.view' и т.д.
  18. $table->enum('action', ['allow', 'deny'])->default('allow');
  19. $table->timestamps();
  20. $table->unique(['user_id', 'permission']);
  21. });
  22. }
  23. /**
  24. * Reverse the migrations.
  25. */
  26. public function down(): void
  27. {
  28. Schema::dropIfExists('user_permissions');
  29. }
  30. };