Proje: Okul Platform · Hub: Okul Platform — Domain

MediaPermissionService

app/Services/Controllers/Customer/MediaPermissionService.php

B2B portalda medya erişimini kontrol eder. CustomerUserService’i extend eder.

Medya Rol Kategorileri

SCHOOL_BASED_ROLES (Okul erişimine göre)

SCHOOL_PROFILE, SCHOOL_GALLERY, SCHOOL_LOGO, VIDEO

Kullanıcının o okula has_content_access = true olması gerekir.

CONTENT_BASED_ROLES (İçerik erişimine göre)

ANNOUNCEMENT_CONTENT, ACHIEVEMENTS_ANNOUNCEMENT, EVENTS_ANNOUNCEMENT

Duyuru/başarı/etkinlik içerik ID’sine bakılır.

hasAccessToRecord()

$mediaPermissionService->hasAccessToRecord(MediaRoleIdType::SCHOOL_GALLERY, $rowId)
// rowId = school_id veya içerik ID'si

B2B Medya Upload Akışı

  1. POST /customer/media/temp — Geçici upload (validation + temp storage)
  2. İçerik formu doldurulur
  3. POST /customer/media/move — DB transaction içinde geçiciden kalıcıya taşı

MediaPermission ile Spatie QueryBuilder Farkı

Spatie: Admin filtreleme (GET) MediaPermissionService: B2B içerik erişim izni (POST/PUT/DELETE)