<h3>4. Özel Politika Çözümleyicileri</h3>
<p>Veritabanı politikalarını yorumlamak için özel bir mantığa ihtiyaç duyuyorsanız (örneğin, belirli bir RBAC sistemiyle entegrasyon), <code>PolicyResolver</code> arayüzünü uygulayın ve <code>config/fieldguard.php</code> dosyasında kaydedin.<br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight php"><code>namespace App\Security;

use Sowailem\FieldGuard\Contracts\PolicyResolver;
use Illuminate\Database\Eloquent\Model;

class MyCustomResolver implements PolicyResolver
{
public function resolve(array $policy, Model $model, $user): bool
{
// Özel mantığınız burada
return true;
}
}

Onu config/fieldguard.php dosyasına kaydedin:

'resolver' => \App\Security\MyCustomResolver::class,

<h3>5. İlk Kuralların Oluşturulması</h3>
<p>Paket, kuralları başlatmanıza yardımcı olmak için bir seeder örneği içerir. Seeder'ı yayınlayabilir ve çalıştırabilir veya sağlanan örneği kullanabilirsiniz:<br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>php artisan db:seed --class="Sowailem\FieldGuard\Database\Seeders\FieldGuardRuleSeeder"

<h3>6. İdari API</h3>
<p>FieldGuard, güvenlik kurallarını yönetmek için yerleşik RESTful API uç noktaları ile birlikte gelir.</p>
<ul>
    <li><code>GET /field-guard/rules</code> – Tüm kuralları listeleyin (sayfalandırma ve filtreleme destekler)</li>
    <li><code>POST /field-guard/rules</code> – Yeni bir kural oluşturun</li>
    <li><code>GET /field-guard/rules/{id}</code> – Belirli bir kuralı görüntüleyin</li>
    <li><code>PUT/PATCH /field-guard/rules/{id}</code> – Mevcut bir kuralı güncelleyin</li>
    <li><code>DELETE /field-guard/rules/{id}</code> – Bir kuralı silin</li>
</ul>

<h4>Yapılandırma</h4>
<p>API ön ekini ve middleware'i <code>config/fieldguard.php</code> dosyasında özelleştirebilirsiniz:<br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight php"><code>'api' => [
'enabled' => true,
'prefix' => 'field-guard',
'middleware' => ['api', 'auth:sanctum'],

],

<h4>Yetkilendirme</h4>
<p>API, istekleri yetkilendirmek için <code>manage-field-guard</code> adında bir kapı kullanır. Bu kapıyı <code>AuthServiceProvider</code> veya <code>AppServiceProvider</code> dosyanızda tanımladığınızdan emin olun:<br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight php"><code>use Illuminate\Support\Facades\Gate;

Gate::define(‘manage-field-guard’, function ($user) {
return $user->isAdmin(); // Yetkilendirme mantığınız
});

<h4>Rotaları Yayınlama</h4>
<p>Rotaları özelleştirmek istiyorsanız, bunları yayınlayabilirsiniz:<br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>php artisan vendor:publish --tag="fieldguard-routes"

Daha sonra, config/fieldguard.php dosyasında otomatik yüklemeyi devre dışı bırakıp, bunları manuel olarak routes/api.php dosyanıza kaydedin.

<h2>Test Etme</h2>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>vendor/bin/phpunit

<h2>Lisans</h2>
<p>MIT Lisansı (MIT). Daha fazla bilgi için <a href="https://dev.toLICENSE">Lisans Dosyasını</a> kontrol edin.</p>

Kaynak: Orijinal Makale

Bu Makaleyi Paylaş