Open Journal Systems  3.3.0
OjsJournalMustPublishPolicy.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  ROLE_ID_SUBSCRIPTION_MANAGER,
49  )
50  ))>0) {
51  return AUTHORIZATION_PERMIT;
52  }
53 
54  if ($this->_context->getData('publishingMode') == PUBLISHING_MODE_NONE) {
55  return AUTHORIZATION_DENY;
56  }
57 
58  return AUTHORIZATION_PERMIT;
59  }
60 }
61 
62 
OjsJournalMustPublishPolicy\$_context
$_context
Definition: OjsJournalMustPublishPolicy.inc.php:20
OjsJournalMustPublishPolicy\effect
effect()
Definition: OjsJournalMustPublishPolicy.inc.php:36
AuthorizationPolicy\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: AuthorizationPolicy.inc.php:117
OjsJournalMustPublishPolicy\__construct
__construct($request)
Definition: OjsJournalMustPublishPolicy.inc.php:28
OjsJournalMustPublishPolicy
Access policy to limit access to journals that do not publish online.
Definition: OjsJournalMustPublishPolicy.inc.php:18
AuthorizationPolicy
Class to represent an authorization policy.
Definition: AuthorizationPolicy.inc.php:31