Open Journal Systems  3.3.0
AdminPluginGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.plugins.PluginGridHandler');
17 
22  function __construct() {
23  $roles = array(ROLE_ID_SITE_ADMIN);
24 
25  $this->addRoleAssignment($roles, array('plugin'));
26 
27  parent::__construct($roles);
28  }
29 
30  //
31  // Overriden template methods.
32  //
36  function getRowInstance() {
37  import('lib.pkp.controllers.grid.plugins.PluginGridRow');
38  return new PluginGridRow($this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES));
39  }
40 
47  function authorize($request, &$args, $roleAssignments) {
48  $category = $request->getUserVar('category');
49  $pluginName = $request->getUserVar('plugin');
50  $verb = $request->getUserVar('verb');
51 
52  if ($category && $pluginName) {
53  import('lib.pkp.classes.security.authorization.PluginAccessPolicy');
54  if ($verb) {
55  $accessMode = ACCESS_MODE_MANAGE;
56  } else {
57  $accessMode = ACCESS_MODE_ADMIN;
58  }
59 
60  $this->addPolicy(new PluginAccessPolicy($request, $args, $roleAssignments, $accessMode));
61  } else {
62  import('lib.pkp.classes.security.authorization.PolicySet');
63  $rolePolicy = new PolicySet(COMBINING_PERMIT_OVERRIDES);
64 
65  import('lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
66  foreach($roleAssignments as $role => $operations) {
67  $rolePolicy->addPolicy(new RoleBasedHandlerOperationPolicy($request, $role, $operations));
68  }
69  $this->addPolicy($rolePolicy);
70  }
71 
72  return parent::authorize($request, $args, $roleAssignments);
73  }
74 }
75 
76 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
AdminPluginGridHandler\__construct
__construct()
Definition: AdminPluginGridHandler.inc.php:22
PluginGridHandler
Handle plugins grid requests.
Definition: PluginGridHandler.inc.php:20
AdminPluginGridHandler\getRowInstance
getRowInstance()
Definition: AdminPluginGridHandler.inc.php:36
PluginGridRow
Plugin grid row definition.
Definition: PluginGridRow.inc.php:18
PluginAccessPolicy
Class to control access to plugins.
Definition: PluginAccessPolicy.inc.php:23
AdminPluginGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: AdminPluginGridHandler.inc.php:47
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
RoleBasedHandlerOperationPolicy
Class to control access to handler operations via role based access control.
Definition: RoleBasedHandlerOperationPolicy.inc.php:18
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
AdminPluginGridHandler
Handle site level plugins grid requests.
Definition: AdminPluginGridHandler.inc.php:18
PolicySet
An ordered list of policies. Policy sets can be added to decision managers like policies....
Definition: PolicySet.inc.php:26