00001 <?php
00015 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
00016
00017 class PluginLevelRequiredPolicy extends AuthorizationPolicy {
00018
00020 var $_contextLevel;
00021
00026 function PluginLevelRequiredPolicy(&$request, $contextLevel) {
00027 parent::AuthorizationPolicy();
00028 $this->_contextLevel =& $contextLevel;
00029 }
00030
00031
00032
00033
00037 function effect() {
00038
00039 $plugin =& $this->getAuthorizedContextObject(ASSOC_TYPE_PLUGIN);
00040 if (!is_a($plugin, 'Plugin')) return AUTHORIZATION_DENY;
00041
00042
00043 if ($this->_contextLevel === CONTEXT_SITE) {
00044 if ($plugin->isSitePlugin()) {
00045 return AUTHORIZATION_PERMIT;
00046 } else {
00047 return AUTHORIZATION_DENY;
00048 }
00049 } elseif ($this->_contextLevel & CONTEXT_PRESS) {
00050 if ($plugin->isSitePlugin()) {
00051 return AUTHORIZATION_DENY;
00052 } else {
00053 return AUTHORIZATION_PERMIT;
00054 }
00055 }
00056 return AUTHORIZATION_DENY;
00057 }
00058 }
00059
00060 ?>