steadlane/silverstripe-cloudflare

View on GitHub
src/Extensions/CloudFlareLeftAndMainExtension.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace SteadLane\Cloudflare;

use SilverStripe\Admin\LeftAndMainExtension;
use SilverStripe\Security\Permission;
use SilverStripe\Security\Security;

/**
 * Class CloudFlareLeftAndMainExtension
 * @package silverstripe-cloudflare
 */
class CloudFlareLeftAndMainExtension extends LeftAndMainExtension
{
    /**
     * {@inheritDoc}
     */
    private static $allowed_actions = array(
        'purgesinglepage'
    );

    /**
     * Purge a single page in CloudFlare
     *
     * @param array $request The SiteTree data requested to be purged
     */
    public function purgesinglepageAction($request)
    {
        if (!Permission::check('CF_PURGE_PAGE')) {
            Security::permissionFailure();
        }
        
        if (empty($request) || empty($request['ID'])) {
            return;
        }

        Purge::singleton()->quick('page', $request['ID']);
    }
}