public function executePolyModuleForm(sfWebRequest $request) { $route = $request->getParameter('r', false); if ($request->isMethod('post')) { $perfil_acceso = $request->getParameter('perfil_acceso'); if (!$route || !$perfil_acceso) { return $this->renderText('ERROR'); } $conn = sfContext::getInstance()->getDatabaseManager()->getDatabase('doctrine')->getDoctrineConnection(); try { $conn->beginTransaction(); ModulesPolymorphismTable::getInstance()->findBySource($route)->delete(); foreach ($perfil_acceso as $sf_guard_permission_id => $form) { $mp = new ModulesPolymorphism(); $mp->setSfGuardPermissionId($sf_guard_permission_id); $mp->setSource($route); $mp->setDestination($form['destination']); $mp->setUseDestinationTitle(isset($form['use_destination_title'])); $mp->save(); } $conn->commit(); return $this->renderText('OK'); } catch (Doctrine_Exception $e) { $conn->rollback(); return $this->renderText('ERROR'); } } $polymorphisms = AdvancedLayout::getModules('', true, true); $modules_permissions = AdvancedLayout::getModulesPermissions(); if (!count($polymorphisms) || !$route || !isset($polymorphisms[$route])) { die; } $data = array(); $data['module'] = $polymorphisms[$route]; $data['permissions'] = AdvancedLayout::getModulesPermissions(); return $this->renderPartial('form_polymodule', $data); }
public static function getModulesPolymorphism() { $modules = array(); foreach (ModulesPolymorphismTable::getInstance()->findAll() as $mp) { $modules[$mp->getPermission()->getId()][$mp->getSource()] = $mp; } return $modules; }