getUser(); $this->_currentUser = $currentUser; } /** * @see AuthorizationPolicy::effect() */ public function effect() { $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION); /** @var Submission $submission */ // Prevent users from editing publications if they do not have permission. Except for admins. $userRoles = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES); if (in_array(Role::ROLE_ID_SITE_ADMIN, $userRoles) || Repo::submission()->canEditPublication($submission->getId(), $this->_currentUser->getId())) { return AuthorizationPolicy::AUTHORIZATION_PERMIT; } return AuthorizationPolicy::AUTHORIZATION_DENY; } }