00001 <?php
00014 import('classes.security.authorization.internal.PressPolicy');
00015
00016 class OmpPublishedMonographAccessPolicy extends PressPolicy {
00025 function OmpPublishedMonographAccessPolicy(&$request, $args, $roleAssignments, $submissionParameterName = 'monographId') {
00026 parent::PressPolicy($request);
00027
00028
00029
00030 $monographAccessPolicy = new PolicySet(COMBINING_PERMIT_OVERRIDES);
00031
00032 $publishedMonographAccessPolicy = new PolicySet(COMBINING_DENY_OVERRIDES);
00033 import('classes.security.authorization.internal.MonographRequiredPolicy');
00034 $publishedMonographAccessPolicy->addPolicy(new MonographRequiredPolicy($request, $args, $submissionParameterName));
00035 import('classes.security.authorization.internal.MonographPublishedPolicy');
00036 $publishedMonographAccessPolicy->addPolicy(new MonographPublishedPolicy($request));
00037 $monographAccessPolicy->addPolicy($publishedMonographAccessPolicy);
00038
00039
00040 import('classes.security.authorization.OmpSubmissionAccessPolicy');
00041 $monographAccessPolicy->addPolicy(
00042 new OmpSubmissionAccessPolicy(
00043 $request, $args,
00044 array_intersect_key(
00045 $roleAssignments,
00046 array(
00047 ROLE_ID_PRESS_MANAGER,
00048 ROLE_ID_SERIES_EDITOR,
00049 )
00050 ),
00051 $submissionParameterName
00052 )
00053 );
00054
00055 $this->addPolicy($monographAccessPolicy);
00056 }
00057 }
00058
00059 ?>