/** * 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); }
public function filterAccessControl($filterChain) { $filter = new CAccessControlFilter(); $rules = $this->accesRulesByAction($filterChain->action); $filter->setRules($rules); $filter->filter($filterChain); }
/** * Filter Access Control. * * This replicates the access control module in the base controller and lets us * do our own special rules that insure we fail closed. * * @param CFilterChain $filterChain Yii passed object. * * @return void */ public function filterAccessControl($filterChain) { $rules = $this->accessRules(); // default deny $rules[] = array('deny'); $filter = new CAccessControlFilter(); $filter->setRules($rules); $filter->filter($filterChain); }
public function filterAccessControl($filterChain) { $rules = $this->accessRules(); // Fallback to denying everyone $rules[] = array('deny'); $filter = new CAccessControlFilter(); $filter->setRules($rules); $filter->filter($filterChain); }
public function filterAccessControl($filterChain) { $filter = new CAccessControlFilter(); $filter->setRules($this->accessRules()); $filter->filter($filterChain); }