Open Journal Systems  3.3.0
HandlerOperationPolicy.inc.php
1 <?php
16 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
17 
20  var $_request;
21 
23  var $_operations = array();
24 
32  function __construct($request, $operations, $message = null) {
33  parent::__construct($message);
34  $this->_request =& $request;
35 
36  // Make sure a single operation doesn't have to
37  // be passed in as an array.
38  assert(is_string($operations) || is_array($operations));
39  if (!is_array($operations)) {
40  $operations = array($operations);
41  }
42  $this->_operations = $operations;
43  }
44 
45 
46  //
47  // Setters and Getters
48  //
53  function &getRequest() {
54  return $this->_request;
55  }
56 
61  function getOperations() {
62  return $this->_operations;
63  }
64 
65 
66  //
67  // Private helper methods
68  //
74  function _checkOperationWhitelist() {
75  // Only permit if the requested operation has been whitelisted.
76  $router = $this->_request->getRouter();
77  $requestedOperation = $router->getRequestedOp($this->_request);
78  assert(!empty($requestedOperation));
79  return in_array($requestedOperation, $this->_operations);
80  }
81 }
82 
83 
HandlerOperationPolicy\$_request
$_request
Definition: HandlerOperationPolicy.inc.php:23
HandlerOperationPolicy\__construct
__construct($request, $operations, $message=null)
Definition: HandlerOperationPolicy.inc.php:38
HandlerOperationPolicy\$_operations
$_operations
Definition: HandlerOperationPolicy.inc.php:29
HandlerOperationPolicy
Abstract base class that provides infrastructure to control access to handler operations.
Definition: HandlerOperationPolicy.inc.php:18
HandlerOperationPolicy\getRequest
& getRequest()
Definition: HandlerOperationPolicy.inc.php:59
AuthorizationPolicy
Class to represent an authorization policy.
Definition: AuthorizationPolicy.inc.php:31
HandlerOperationPolicy\_checkOperationWhitelist
_checkOperationWhitelist()
Definition: HandlerOperationPolicy.inc.php:80
HandlerOperationPolicy\getOperations
getOperations()
Definition: HandlerOperationPolicy.inc.php:67