本文整理汇总了PHP中CController::filterAccessControl方法的典型用法代码示例。如果您正苦于以下问题:PHP CController::filterAccessControl方法的具体用法?PHP CController::filterAccessControl怎么用?PHP CController::filterAccessControl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CController
的用法示例。
在下文中一共展示了CController::filterAccessControl方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: filterAccessControl
/**
* Denies access if the module is successfully installed.
* @param CFilterChain $filterChain
* @throws CHttpException
*/
public function filterAccessControl($filterChain)
{
$accesscontrol = YiiPlug::app()->hasAccessControlModulesInstalled();
$user = YiiPlug::app()->hasUserModulesInstalled();
if (!$accesscontrol || !$user) {
// no access control module available
$filter = new CAccessControlFilter();
$rules = $this->accessRules();
$frules = array();
foreach ($rules as $key => $values) {
$frule = array();
foreach ($values as $vkey => $value) {
if (!$accesscontrol && $vkey !== 'roles') {
// do not have accesscontrol module
// skip role based access control (but keep other checks)
$frule[$vkey] = $value;
}
}
if ($user && $frule[0] === 'allow') {
// has user authentication module
// add authenticated user required for each action
if (isset($frule['users'])) {
$frule['users'][] = '@';
} else {
$frule['users'] = array('@');
}
}
$frules[$key] = $frule;
}
$filter->setRules($frules);
return $filter->filter($filterChain);
}
// we are in normal state, just do classic access control
return parent::filterAccessControl($filterChain);
}
示例2: filterAccessControl
public function filterAccessControl($filterChain)
{
parent::filterAccessControl($filterChain);
}