Open Journal Systems  3.3.0
PluginRequiredPolicy.inc.php
1 <?php
16 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
17 
19 
21  var $_request;
22 
27  function __construct($request) {
28  parent::__construct('user.authorization.pluginRequired');
29  $this->_request = $request;
30  }
31 
32  //
33  // Implement template methods from AuthorizationPolicy
34  //
38  function effect() {
39  // Get the plugin request data.
40  $category = $this->_request->getUserVar('category');
41  $pluginName = $this->_request->getUserVar('plugin');
42 
43  // Load the plugin.
44  $plugins = PluginRegistry::loadCategory($category);
45  $foundPlugin = null;
46  foreach ($plugins as $plugin) { /* @var $plugin Plugin */
47  if ($plugin->getName() == $pluginName) {
48  $foundPlugin = $plugin;
49  break;
50  }
51  }
52  if (!is_a($foundPlugin, 'Plugin')) return AUTHORIZATION_DENY;
53 
54  // Add the plugin to the authorized context.
55  $this->addAuthorizedContextObject(ASSOC_TYPE_PLUGIN, $foundPlugin);
56  return AUTHORIZATION_PERMIT;
57  }
58 }
59 
60 
PluginRequiredPolicy\$_request
$_request
Definition: PluginRequiredPolicy.inc.php:24
PluginRegistry\loadCategory
static loadCategory($category, $enabledOnly=false, $mainContextId=null)
Definition: PluginRegistry.inc.php:103
AuthorizationPolicy\addAuthorizedContextObject
addAuthorizedContextObject($assocType, &$authorizedObject)
Definition: AuthorizationPolicy.inc.php:97
PluginRequiredPolicy\__construct
__construct($request)
Definition: PluginRequiredPolicy.inc.php:30
PluginRequiredPolicy
Class to make sure we have a valid plugin in request.
Definition: PluginRequiredPolicy.inc.php:18
AuthorizationPolicy
Class to represent an authorization policy.
Definition: AuthorizationPolicy.inc.php:31
PluginRequiredPolicy\effect
effect()
Definition: PluginRequiredPolicy.inc.php:41