# fluent-community/2.10.0/Modules/Course/Http/Policies/CourseAdminPolicy.php

FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS &amp; Online Courses, version 2.10.0. 56 lines.

- Page: https://pluginprobe.com/plugins/fluent-community/2.10.0/code/Modules/Course/Http/Policies/CourseAdminPolicy.php
- Raw: https://pluginprobe.com/plugins/fluent-community/2.10.0/raw/Modules/Course/Http/Policies/CourseAdminPolicy.php
- Modified: 2026-09-03T15:28:12+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-community/2.10.0/code/Modules/Course/Http/Policies/CourseAdminPolicy.php#L10-L20`.

```php
<?php

namespace FluentCommunity\Modules\Course\Http\Policies;

use FluentCommunity\App\Http\Policies\BasePolicy;
use FluentCommunity\Framework\Http\Request\Request;
use FluentCommunity\Modules\Course\Model\Course;
use FluentCommunity\App\Services\Helper;

class CourseAdminPolicy extends BasePolicy
{
    /**
     * Check user permission for any method
     * @param \FluentCommunity\Framework\Http\Request\Request $request
     * @return Boolean
     */
    public function verifyRequest(Request $request)
    {
        $user = Helper::getCurrentUser(true);

        if (!$user) {
            return false;
        }

        if (!$user->hasCourseCreatorAccess()) {
            return false;
        }

        if ($this->getRouteParam($request, 'course_id')) {
            return $this->canManageCourse($request);
        }

        return true;
    }

    protected function canManageCourse(Request $request)
    {
        if (Helper::isSuperAdmin()) {
            return true;
        }

        $user = Helper::getCurrentUser(true);

        if ($courseId = $this->getRouteParam($request, 'course_id')) {
            $course = Course::find($courseId);
            if (!$course) {
                return false;
            }

            return $course->isCourseAdmin($user);
        }

        return $user->hasSpaceManageAccess();
    }
}

```
