• Main Page
  • Modules
  • Classes
  • Files
  • File List

classes/security/authorization/internal/PluginLevelRequiredPolicy.inc.php

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    // Implement template methods from AuthorizationPolicy
00033    //
00037    function effect() {
00038       // Get the plugin.
00039       $plugin =& $this->getAuthorizedContextObject(ASSOC_TYPE_PLUGIN);
00040       if (!is_a($plugin, 'Plugin')) return AUTHORIZATION_DENY;
00041 
00042       // Test the plugin level.
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 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1