public function executeAcceso(sfWebRequest $request) { $id = $request->getParameter('id'); $defaults = array(); $Menu = MenuQuery::create()->usePerfilMenuQuery()->filterByPerfilId($id)->endUse()->find(); foreach ($Menu as $fila) { $defaults['Menu'][] = $fila->getId(); } $this->form = new AccesoForm($defaults); if ($request->isMethod('POST')) { $this->form->bind($request->getParameter('acceso')); if ($this->form->isValid()) { $valores = $this->form->getValues(); PerfilMenuQuery::create()->findByPerfilId($id)->delete(); foreach ($valores['Menu'] as $fila) { $PerfilMenu = new PerfilMenu(); $PerfilMenu->setPerfilId($id); $PerfilMenu->setMenuId($fila); $PerfilMenu->save(); } $idUsuario = $this->getUser()->getAttribute('usuario', null, 'seguridad'); $html = Usuario::generaArbol($idUsuario); $this->getUser()->setAttribute('menu', $html, 'seguridad'); $this->getUser()->setFlash('exito', 'Asignacion de Menús realizado correcamente.'); $this->redirect('perfil/index'); } } $this->id = $id; }
public function buildMenu() { if (Yii::app()->user->isGuest) { return array(array('label' => 'Iniciar Sesión', 'url' => array('/site/login'))); } $in = array(); $inicio = 0; $perfiles_menus = PerfilMenu::model()->findAll('id_perfil_sistema=?', array(Yii::app()->user->id_perfil_sistema)); foreach ($perfiles_menus as $perfil_menu) { $in[] = $perfil_menu->id_menu_sistema; $inicio++; } return $this->concatenatedToBuildMenu($in, 0); }
/** * @param PerfilMenu $perfilMenu The perfilMenu object to add. */ protected function doAddPerfilMenu($perfilMenu) { $this->collPerfilMenus[] = $perfilMenu; $perfilMenu->setMenu($this); }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param PerfilMenu $obj A PerfilMenu object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool($obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null PerfilMenuPeer::$instances[$key] = $obj; } }
/** * Filter the query by a related PerfilMenu object * * @param PerfilMenu|PropelObjectCollection $perfilMenu the related object to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return PerfilQuery The current query, for fluid interface * @throws PropelException - if the provided filter is invalid. */ public function filterByPerfilMenu($perfilMenu, $comparison = null) { if ($perfilMenu instanceof PerfilMenu) { return $this->addUsingAlias(PerfilPeer::ID, $perfilMenu->getPerfilId(), $comparison); } elseif ($perfilMenu instanceof PropelObjectCollection) { return $this->usePerfilMenuQuery()->filterByPrimaryKeys($perfilMenu->getPrimaryKeys())->endUse(); } else { throw new PropelException('filterByPerfilMenu() only accepts arguments of type PerfilMenu or PropelCollection'); } }
/** * Exclude object from result * * @param PerfilMenu $perfilMenu Object to remove from the list of results * * @return PerfilMenuQuery The current query, for fluid interface */ public function prune($perfilMenu = null) { if ($perfilMenu) { $this->addUsingAlias(PerfilMenuPeer::ID, $perfilMenu->getId(), Criteria::NOT_EQUAL); } return $this; }