Proje: Okul Platform · Hub: Okul Platform — Conventions

Pattern Açıklaması

Spatie permission eklemesi/kaldırması için PermissionAddOrDropTrait kullanılır. Migration’larda yeni permission eklemek standart bir pattern.

PermissionAddOrDropTrait Kullanımı

class SomeMigration extends Migration
{
    use PermissionAddOrDropTrait;
 
    public function up(): void
    {
        $this->addPermissions();
    }
 
    public function down(): void
    {
        $this->dropPermissions();
    }
 
    protected function permissions(): array
    {
        return array_merge(
            $this->permissionTemplate(
                permissionName: 'view-school',
                displayName: 'Okul görüntüleme',
                categoryName: 'Okullar',
                roles: [
                    RoleType::SUPER_ADMIN->value,
                    RoleType::SALES->value,
                    // ...
                ],
            ),
            // ... daha fazla permission
        );
    }
}

permissionTemplate() Yapısı

  • permissionName → PermissionType enum değeri
  • displayName → Türkçe açıklama (Spatie’ye kaydedilir)
  • categoryName → İzin kategorisi
  • roles → Bu izni hangi roller alacak

Örnek Migration

2026_04_16_115931_add_article_comment_permissions.php — Makale yorum permission’ları: Sadece SUPER_ADMIN’e: add, edit, delete article-comment.