Open Preprint Systems  3.3.0
OpsServerMustPublishPolicy.inc.php
1 <?php
15 import('lib.pkp.classes.security.authorization.PolicySet');
16 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
17 
19 
20  var $_context;
21 
28  function __construct($request) {
29  parent::__construct('user.authorization.journalDoesNotPublish');
30  $this->_context = $request->getContext();
31  }
32 
33  //
34  // Implement template methods from AuthorizationPolicy
35  //
36  function effect() {
37  if (!$this->_context) return AUTHORIZATION_DENY;
38 
39  // Certain roles are allowed to see unpublished content.
40  $userRoles = (array) $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
41  if (count(array_intersect(
42  $userRoles,
43  array(
44  ROLE_ID_MANAGER,
45  ROLE_ID_SITE_ADMIN,
46  ROLE_ID_ASSISTANT,
47  ROLE_ID_SUB_EDITOR,
48  )
49  ))>0) {
50  return AUTHORIZATION_PERMIT;
51  }
52 
53  if ($this->_context->getData('publishingMode') == PUBLISHING_MODE_NONE) {
54  return AUTHORIZATION_DENY;
55  }
56 
57  return AUTHORIZATION_PERMIT;
58  }
59 }
60 
61 
OpsServerMustPublishPolicy\effect
effect()
Definition: OpsServerMustPublishPolicy.inc.php:36
OpsServerMustPublishPolicy
Access policy to limit access to servers that do not publish online.
Definition: OpsServerMustPublishPolicy.inc.php:18
AuthorizationPolicy\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: AuthorizationPolicy.inc.php:117
OpsServerMustPublishPolicy\$_context
$_context
Definition: OpsServerMustPublishPolicy.inc.php:20
OpsServerMustPublishPolicy\__construct
__construct($request)
Definition: OpsServerMustPublishPolicy.inc.php:28
AuthorizationPolicy
Class to represent an authorization policy.
Definition: AuthorizationPolicy.inc.php:31