00001 <?php
00015 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
00016
00017 class PluginRequiredPolicy extends AuthorizationPolicy {
00018
00020 var $_request;
00021
00026 function PluginRequiredPolicy(&$request) {
00027 parent::AuthorizationPolicy();
00028 $this->_request =& $request;
00029 }
00030
00031
00032
00033
00037 function effect() {
00038
00039 $category = $this->_request->getUserVar('category');
00040 $pluginName = $this->_request->getUserVar('plugin');
00041
00042
00043 $plugins =& PluginRegistry::loadCategory($category);
00044 $foundPlugin = null;
00045 foreach ($plugins as $plugin) {
00046 if ($plugin->getName() == $pluginName) {
00047 $foundPlugin = $plugin;
00048 break;
00049 }
00050 }
00051 if (!is_a($foundPlugin, 'Plugin')) return AUTHORIZATION_DENY;
00052
00053
00054 $this->addAuthorizedContextObject(ASSOC_TYPE_PLUGIN, $foundPlugin);
00055 return AUTHORIZATION_PERMIT;
00056 }
00057 }
00058
00059 ?>