# fluent-booking/2.3.0/app/Http/Policies/AvailabilityPolicy.php

Fluent Booking – The Ultimate Appointments Scheduling, Events Booking, Events Calendar Solution, version 2.3.0. 44 lines.

- Page: https://pluginprobe.com/plugins/fluent-booking/2.3.0/code/app/Http/Policies/AvailabilityPolicy.php
- Raw: https://pluginprobe.com/plugins/fluent-booking/2.3.0/raw/app/Http/Policies/AvailabilityPolicy.php
- Modified: 2026-08-21T15:57:08+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/fluent-booking/2.3.0/code/app/Http/Policies/AvailabilityPolicy.php#L10-L20`.

```php
<?php

namespace FluentBooking\App\Http\Policies;

use FluentBooking\App\Services\PermissionManager;
use FluentBooking\Framework\Http\Request\Request;
use FluentBooking\Framework\Foundation\Policy;

class AvailabilityPolicy extends Policy
{
    /**
     * Check user permission for any method
     * @param \FluentBooking\Framework\Http\Request\Request; $request
     * @return Boolean
     */
    public function verifyRequest(Request $request)
    {
        if (PermissionManager::userCan(['manage_all_data', 'manage_other_availabilities'])) {
            return true;
        }

        if ($request->getMethod() == 'GET' && PermissionManager::userCan('read_and_use_other_availabilities')) {
            return true;
        }

        // Resolve the schedule from the URL route only — request-body values
        // must not be permitted to redirect the authorization target.
        $urlParams = (array) $request->get_url_params();
        $scheduleId = isset($urlParams['schedule_id']) ? (int) $urlParams['schedule_id'] : 0;

        if ($scheduleId) {
            $availability = \FluentBooking\App\Models\Availability::find($scheduleId);

            if (!$availability) {
                return false;
            }

            return (int)$availability->object_id === get_current_user_id();
        }

        return PermissionManager::userCan('manage_own_calendar');
    }
}

```
