public function getDataset(&$counter, $params = array())
 {
     $params['order'] = array('priority' => 'ASC');
     $groups = $this->_getUserGroups();
     $dataspace = DataspaceRegistry::get('set_group_access');
     $filter_groups = $dataspace->get('filter_groups');
     if (!is_array($filter_groups) || !count($filter_groups)) {
         return false;
     }
     foreach (array_keys($groups) as $key) {
         if (!in_array($key, $filter_groups)) {
             unset($groups[$key]);
         }
     }
     return new ArrayDataset($groups);
 }
 protected function _fetch(&$counter, $params)
 {
     $tree_array = parent::_fetch($counter, $params);
     $group_params['order'] = array('priority' => 'ASC');
     $user_groups = $this->_getUserGroups();
     $dataspace = DataspaceRegistry::get('set_group_access');
     $groups = $dataspace->get('filter_groups');
     if (!is_array($groups) || !count($groups)) {
         return $tree_array;
     }
     foreach (array_keys($user_groups) as $key) {
         if (!in_array($key, $groups)) {
             unset($user_groups[$key]);
         }
     }
     foreach ($tree_array as $id => $node) {
         $object_id = $node['id'];
         foreach ($user_groups as $group_id => $group_data) {
             $tree_array[$id]['groups'][$group_id]['access_selector_name'] = 'policy[' . $object_id . '][' . $group_id . ']';
         }
     }
     return $tree_array;
 }
  public function switchDataspace($name)
  {
    include_once(LIMB_DIR . '/class/core/DataspaceRegistry.class.php');

    $this->current_dataspace_name = $name;

    return DataspaceRegistry :: get($name);
  }
  public function setValue($value)
  {
    $form_component = $this->findParentByClass('form_component');

    $dataspace = DataspaceRegistry :: get($form_component->attributes['name']);

    if(!isset($this->attributes['name']))
      Debug :: writeWarning("form element 'name' attribute not set:" . $this->getServerId());

    $dataspace->setByIndexString($this->_makeIndexName($this->attributes['name']), $value);
  }