本文整理汇总了PHP中PolicySet::setEffectIfNoPolicyApplies方法的典型用法代码示例。如果您正苦于以下问题:PHP PolicySet::setEffectIfNoPolicyApplies方法的具体用法?PHP PolicySet::setEffectIfNoPolicyApplies怎么用?PHP PolicySet::setEffectIfNoPolicyApplies使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PolicySet
的用法示例。
在下文中一共展示了PolicySet::setEffectIfNoPolicyApplies方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testPolicySet
/**
* @covers PolicySet
*/
public function testPolicySet()
{
// Test combining algorithm and default effect.
$policySet = new PolicySet();
self::assertEquals(COMBINING_DENY_OVERRIDES, $policySet->getCombiningAlgorithm());
self::assertEquals(AUTHORIZATION_DENY, $policySet->getEffectIfNoPolicyApplies());
$policySet = new PolicySet(COMBINING_PERMIT_OVERRIDES);
$policySet->setEffectIfNoPolicyApplies(AUTHORIZATION_PERMIT);
self::assertEquals(COMBINING_PERMIT_OVERRIDES, $policySet->getCombiningAlgorithm());
self::assertEquals(AUTHORIZATION_PERMIT, $policySet->getEffectIfNoPolicyApplies());
// Test adding policies.
$policySet->addPolicy($policy1 = new AuthorizationPolicy('policy1'));
$policySet->addPolicy($policy2 = new AuthorizationPolicy('policy2'));
$policySet->addPolicy($policy3 = new AuthorizationPolicy('policy3'), $addToTop = true);
self::assertEquals(array($policy3, $policy1, $policy2), $policySet->getPolicies());
}
示例2: OjsPluginAccessPolicy
/**
* Constructor
* @param $request PKPRequest
* @param $args array request arguments
* @param $roleAssignments array
* @param $accessMode int
*/
function OjsPluginAccessPolicy($request, &$args, $roleAssignments, $accessMode = ACCESS_MODE_ADMIN)
{
parent::PolicySet();
// A valid plugin is required.
$this->addPolicy(new PluginRequiredPolicy($request));
// Journal managers and site admin have
// access to plugins. We'll have to define
// differentiated policies for those roles in a policy set.
$pluginAccessPolicy = new PolicySet(COMBINING_PERMIT_OVERRIDES);
$pluginAccessPolicy->setEffectIfNoPolicyApplies(AUTHORIZATION_DENY);
//
// Managerial role
//
if (isset($roleAssignments[ROLE_ID_MANAGER])) {
if ($accessMode & ACCESS_MODE_MANAGE) {
// Journal managers have edit settings access mode...
$journalManagerPluginAccessPolicy = new PolicySet(COMBINING_DENY_OVERRIDES);
$journalManagerPluginAccessPolicy->addPolicy(new RoleBasedHandlerOperationPolicy($request, ROLE_ID_MANAGER, $roleAssignments[ROLE_ID_MANAGER]));
// ...only to journal level plugins.
$journalManagerPluginAccessPolicy->addPolicy(new PluginLevelRequiredPolicy($request, CONTEXT_JOURNAL));
$pluginAccessPolicy->addPolicy($journalManagerPluginAccessPolicy);
}
}
//
// Site administrator role
//
if (isset($roleAssignments[ROLE_ID_SITE_ADMIN])) {
// Site admin have access to all plugins...
$siteAdminPluginAccessPolicy = new PolicySet(COMBINING_DENY_OVERRIDES);
$siteAdminPluginAccessPolicy->addPolicy(new RoleBasedHandlerOperationPolicy($request, ROLE_ID_SITE_ADMIN, $roleAssignments[ROLE_ID_SITE_ADMIN]));
if ($accessMode & ACCESS_MODE_MANAGE) {
// ...of site level only.
$siteAdminPluginAccessPolicy->addPolicy(new PluginLevelRequiredPolicy($request, CONTEXT_SITE));
}
$pluginAccessPolicy->addPolicy($siteAdminPluginAccessPolicy);
}
$this->addPolicy($pluginAccessPolicy);
}