99 lines
2.0 KiB
PHP
99 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/plugins/GatewayPlugin.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2003-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class GatewayPlugin
|
|
*
|
|
* @ingroup plugins
|
|
*
|
|
* @brief Abstract class for gateway plugins
|
|
*/
|
|
|
|
namespace PKP\plugins;
|
|
|
|
use APP\core\Application;
|
|
use PKP\core\PKPRequest;
|
|
|
|
abstract class GatewayPlugin extends Plugin
|
|
{
|
|
/**
|
|
* Handle fetch requests for this plugin.
|
|
*
|
|
* @param array $args
|
|
* @param object $request
|
|
*/
|
|
abstract public function fetch($args, $request);
|
|
|
|
/**
|
|
* Determine whether the plugin can be enabled.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getCanEnable()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Determine whether the plugin can be disabled.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getCanDisable()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Determine whether or not this plugin is currently enabled.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getEnabled()
|
|
{
|
|
return $this->getSetting($this->getCurrentContextId(), 'enabled');
|
|
}
|
|
|
|
/**
|
|
* Set whether or not this plugin is currently enabled.
|
|
*
|
|
* @param bool $enabled
|
|
*/
|
|
public function setEnabled($enabled)
|
|
{
|
|
$this->updateSetting($this->getCurrentContextId(), 'enabled', $enabled, 'bool');
|
|
}
|
|
|
|
/**
|
|
* Get the current context ID or the site-wide context ID (0) if no context
|
|
* can be found.
|
|
*/
|
|
public function getCurrentContextId()
|
|
{
|
|
$context = Application::get()->getRequest()->getContext();
|
|
return is_null($context) ? 0 : $context->getId();
|
|
}
|
|
|
|
/**
|
|
* Get policies to the authorization process
|
|
*
|
|
* @param PKPRequest $request
|
|
*
|
|
* @return array Set of authorization policies
|
|
*/
|
|
|
|
public function getPolicies($request)
|
|
{
|
|
return [];
|
|
}
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\plugins\GatewayPlugin', '\GatewayPlugin');
|
|
}
|