Ejemplo n.º 1
0
 public function actionRightsAcoUpdate($aco_class, $aco_key, $aco_value, $operation, $value, $is_deny = 0)
 {
     $ret = true;
     $savedItems = AccessItem::model()->findAllByAttributes(array('aco_class' => $aco_class, 'aco_key' => $aco_key, 'aco_value' => $aco_value, 'action' => $operation, 'is_deny' => $is_deny));
     $items = explode(',', $value);
     foreach ($items as $item) {
         list($aro_class, $aro_key, $aro_value) = explode(':', $item);
         $alreadySaved = false;
         foreach ($savedItems as $i => $saveItem) {
             if ($saveItem['aro_class'] == $aro_class && $saveItem['aro_key'] == $aro_key && $saveItem['aro_value'] == $aro_value) {
                 $alreadySaved = true;
                 unset($savedItems[$i]);
                 break;
             }
         }
         if (!$alreadySaved) {
             $accessItem = new AccessItem();
             $accessItem->aco_class = $aco_class;
             $accessItem->aco_key = $aco_key;
             $accessItem->aco_value = $aco_value;
             $accessItem->aro_class = $aro_class;
             $accessItem->aro_key = $aro_key;
             $accessItem->aro_value = $aro_value;
             $accessItem->action = $operation;
             $accessItem->is_deny = (bool) $is_deny;
             $ret = $ret && $accessItem->save();
         }
     }
     foreach ($savedItems as $saveItem) {
         $saveItem->delete();
     }
     echo intval($ret);
 }
Ejemplo n.º 2
0
 protected function rightsForOperation($operation, $is_deny = 0)
 {
     $params = array('aco_class' => $this->objects[0], 'aco_key' => !empty($this->objects[1]) ? $this->objects[1] : '', 'aco_value' => !empty($this->objects[2]) ? $this->objects[2] : '', 'action' => $operation);
     $items = AccessItem::model()->findAllByAttributes($params);
     $data = array();
     foreach ($items as $item) {
         if ($item['aro_class']) {
             $data[] = array('id' => $item->getAroId(), 'text' => $item->getAroText());
         }
     }
     $extraResults = array();
     $buildInRoles = Role::builtInRoles();
     foreach ($buildInRoles as $roleName => $roleTitle) {
         $extraResults['User:roles:' . $roleName] = $roleTitle;
     }
     return $this->widget('Select2', array('name' => $this->htmlOptions['name'] . '[' . $operation . ']', 'id' => $this->htmlOptions['id'] . '_' . $operation, 'data' => $data, 'htmlOptions' => array('class' => 'rightsselect', 'data-aco_class' => $params['aco_class'], 'data-aco_key' => $params['aco_key'], 'data-aco_value' => $params['aco_value'], 'data-operation' => $params['action'], 'data-is_deny' => $is_deny), 'classNames' => array(array('User', 'User:id:', 'id', 'email,login,displayname'), array('User', 'User:roles:', '_roles.name', 'title'), $extraResults)), true);
 }