Exemplo n.º 1
0
 public function installDefaultAccess($acoClass)
 {
     $sql = 'select count(*) from `' . AccessItem::tableName() . '` where `aco_class` = :aco_class';
     $alreadyInstalled = Yii::app()->getDb()->createCommand($sql)->queryScalar(array('aco_class' => $acoClass));
     $defaultRules = AccessCBehavior::getDefaultRulesByClassName($acoClass);
     if ($alreadyInstalled == 0 && !empty($defaultRules)) {
         $items = array();
         foreach ($defaultRules as $action => $params) {
             if (is_array($params)) {
                 foreach ($params as $aroClass => $datas) {
                     if (is_array($datas)) {
                         foreach ($datas as $data) {
                             $aroKey = $data[0];
                             $aroValue = $data[1];
                             $isDeny = isset($data['deny']) ? $data['deny'] : false;
                             $items[] = "('{$acoClass}', '', '', '{$aroClass}', '{$aroKey}', '{$aroValue}', '{$action}', '{$isDeny}')";
                         }
                     }
                 }
             }
         }
         $sql = 'insert into `' . AccessItem::tableName() . '` (`aco_class`, `aco_key`, `aco_value`, `aro_class`, `aro_key`, `aro_value`, `action`, `is_deny`) values ' . implode(', ', $items);
         return Yii::app()->getDb()->createCommand($sql)->execute();
     }
 }