protected function earlyExecute()
 {
     $this->form->getValidatorSchema()->setOption('allow_extra_fields', true);
     $this->resource = new QubitActor();
     // Make root actor the parent of new actors
     $this->resource->parentId = QubitActor::ROOT_ID;
     if (isset($this->getRoute()->resource)) {
         $this->resource = $this->getRoute()->resource;
         // Check that this isn't the root
         if (!isset($this->resource->parent)) {
             $this->forward404();
         }
         // Check user authorization
         if (!QubitAcl::check($this->resource, 'update')) {
             QubitAcl::forwardUnauthorized();
         }
         // Add optimistic lock
         $this->form->setDefault('serialNumber', $this->resource->serialNumber);
         $this->form->setValidator('serialNumber', new sfValidatorInteger());
         $this->form->setWidget('serialNumber', new sfWidgetFormInputHidden());
     } else {
         // Check user authorization against Actor ROOT
         if (!QubitAcl::check(QubitActor::getById(QubitActor::ROOT_ID), 'create')) {
             QubitAcl::forwardUnauthorized();
         }
     }
     $this->form->setDefault('next', $this->request->getReferer());
     $this->form->setValidator('next', new sfValidatorString());
     $this->form->setWidget('next', new sfWidgetFormInputHidden());
 }
 public function execute($request)
 {
     if (!isset($request->limit)) {
         $request->limit = sfConfig::get('app_hits_per_page');
     }
     if (isset($request->subquery)) {
         try {
             // Parse query string
             $query = QubitSearch::getInstance()->parse($request->subquery);
         } catch (Exception $e) {
             $this->error = $e->getMessage();
             return;
         }
     } else {
         $this->redirect(array('module' => 'actor', 'action' => 'browse'));
     }
     $query->addSubquery(QubitSearch::getInstance()->addTerm('QubitActor', 'className'), true);
     $query = QubitAcl::searchFilterByResource($query, QubitActor::getById(QubitActor::ROOT_ID));
     $this->pager = new QubitArrayPager();
     try {
         $this->pager->hits = QubitSearch::getInstance()->getEngine()->getIndex()->find($query);
     } catch (Exception $e) {
         $this->error = $e->getMessage();
         return;
     }
     $this->pager->setMaxPerPage($request->limit);
     $this->pager->setPage($request->page);
     $ids = array();
     foreach ($this->pager->getResults() as $hit) {
         $ids[] = $hit->getDocument()->id;
     }
     $criteria = new Criteria();
     $criteria->add(QubitActor::ID, $ids, Criteria::IN);
     $this->actors = QubitActor::get($criteria);
 }
<?php 
echo get_partial('addActorDialog', array('basicActions' => $basicActions));
?>

<form method="post" action="<?php 
echo url_for(array($resource, 'module' => 'aclGroup', 'action' => 'editActorAcl'));
?>
" id="editForm">

<?php 
foreach ($actors as $objectId => $permissions) {
    ?>
  <div class="form-item">
<?php 
    echo get_component('aclGroup', 'aclTable', array('object' => QubitActor::getById($objectId), 'permissions' => $permissions, 'actions' => $basicActions));
    ?>
  </div>
<?php 
}
?>

  <div class="form-item">
    <label for="addActorLink"><?php 
echo __('Add permissions by %1%', array('%1%' => sfConfig::get('app_ui_label_actor')));
?>
</label>
    <a id="addActorLink" href="javascript:myDialog.show()"><?php 
echo __('Add %1%', array('%1%' => sfConfig::get('app_ui_label_actor')));
?>
</a>
    ?>
        </tr>
      </thead><tbody>
        <?php 
    foreach ($acl as $objectId => $actions) {
        ?>
          <tr>
            <td colspan="<?php 
        echo $tableCols;
        ?>
"><strong>
              <?php 
        if (1 < $objectId) {
            ?>
                <?php 
            echo render_title(QubitActor::getById($objectId));
            ?>
              <?php 
        } else {
            ?>
                <em><?php 
            echo __('All %1%', array('%1%' => sfConfig::get('app_ui_label_actor')));
            ?>
</em>
              <?php 
        }
        ?>
            </strong></td>
          </tr>
          <?php 
        $row = 0;