# fluent-boards/2.0.1/app/Http/Policies/SingleBoardPolicy.php

FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration, version 2.0.1. 47 lines.

- Page: https://pluginprobe.com/plugins/fluent-boards/2.0.1/code/app/Http/Policies/SingleBoardPolicy.php
- Raw: https://pluginprobe.com/plugins/fluent-boards/2.0.1/raw/app/Http/Policies/SingleBoardPolicy.php
- Modified: 2026-07-30T14:27:06+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-boards/2.0.1/code/app/Http/Policies/SingleBoardPolicy.php#L10-L20`.

```php
<?php

namespace FluentBoards\App\Http\Policies;

use FluentBoards\Framework\Http\Request\Request;
use FluentBoards\App\Services\PermissionManager;

class SingleBoardPolicy extends BasePolicy
{
    /**
     * Check user permission for any method
     * @param  \FluentBoards\Framework\Http\Request\Request $request
     * @param  int $board_id
     * @return bool
     */
    public function verifyRequest(Request $request)
    {

        return PermissionManager::userHasBoardPermission($request->board_id, $request->getMethod());
    }

    public function delete(Request $request)
    {
        return PermissionManager::isAdmin();
    }

    /**
     * Task AI actions. `summarize` only reads content the member can already see,
     * so it is treated as a read for permission purposes — otherwise viewer-only
     * members would be denied an action the UI intentionally offers them. Every
     * other action writes to the task and keeps the normal write restrictions.
     */
    public function taskAssist(Request $request)
    {
        $method = $request->get('action') === 'summarize' ? 'GET' : $request->getMethod();

        return PermissionManager::userHasBoardPermission($request->board_id, $method);
    }

    public function makeManager(Request $request)
    {
        return PermissionManager::isBoardManager($request->board_id);
    }


}

```
