public function executeAccept_group(sfWebRequest $request)
 {
     $invitacion_id = $request->getParameter('invitacion');
     $token_seguridad = $request->getParameter('token');
     $user_token = $request->getParameter('account');
     /*vamos a aceptar permanecer a un grupo
        aca realizo validacion en 5 capas
           1 reviso que la session de usuario exista
           2 que la el valor obtenido en la consulta sea un object(que la consulta sql resulte con el registro solicitado)
           3 el token de la solicitud sea correcto
           4 el email sea correcto
           5 que el usuario id sea correcto (este es id del usuario que envio la solicitud en md5)
       */
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         $solicitud = SolicitudGrupoTrabajoScPeer::retrieveByPK($invitacion_id);
         if (is_object($solicitud)) {
             if ($token_seguridad == $solicitud->getToken()) {
                 if ($user_token == md5($solicitud->getUserId())) {
                     $solicitud->setRespondido(1);
                     $solicitud->setFlag(json_encode(array("estado" => false, "respuesta" => true)));
                     $solicitud->setUpdateAt(time());
                     $solicitud->save();
                     //falta cambiar los indicadores que esten relacionados al grupo
                     /*vamos a obtener todos los arboles que esten relacionados con el grupo
                       depues vamos a obtener todos los indicadores donde el usuario se encuentre
                       asignado y vamos a aumetar el ID en cada registro que encontremos*/
                     //admemas vamos hacer lo mismo en las asignaciones para tener un mejor indexacion
                     //a la hora de hacer las consultas.
                     $criterio_tree = new Criteria();
                     $criterio_tree->add(TreeScPeer::GRUPO_TRABAJO_ID, $solicitud->getGrupoId());
                     $list_tree = TreeScPeer::doSelect($criterio_tree);
                     foreach ($list_tree as $row) {
                         $con = Propel::getConnection();
                         $criterio_busqueda = new Criteria();
                         $criterio_busqueda->add(IndicatorsScPeer::EMAIL_RESPONSABLE, '%' . $solicitud->getEmail() . '%', Criteria::LIKE);
                         $criterio_busqueda->add(IndicatorsScPeer::TREE_ID, $row->getId());
                         $criterio_update = new Criteria();
                         $criterio_update->add(IndicatorsScPeer::RESPONSABLE_ID, $user->getId());
                         BasePeer::doUpdate($criterio_busqueda, $criterio_update, $con);
                         $con = Propel::close();
                     }
                     $con = Propel::getConnection();
                     $criterio_asignaciones = new Criteria();
                     $criterio_asignaciones->add(AsignacionScPeer::GRUPO_ID, $solicitud->getGrupoId());
                     $criterio_asignaciones->add(AsignacionScPeer::EMAIL, '%' . $user->getEmail() . '%', Criteria::LIKE);
                     $criterio_update = new Criteria();
                     $criterio_update->add(AsignacionScPeer::USER_ID, $user->getId());
                     BasePeer::doUpdate($criterio_asignaciones, $criterio_update, $con);
                     $con = Propel::close();
                     $criterio_detalle = new Criteria();
                     $criterio_detalle->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $solicitud->getGrupoId());
                     $criterio_detalle->add(DetalleGrupoTrabajoScPeer::EMAIL, '%' . $user->getEmail() . '%', Criteria::LIKE);
                     $bean_detalle = DetalleGrupoTrabajoScPeer::doSelectOne($criterio_detalle);
                     $bean_detalle->setUserId($user->getId());
                     $bean_detalle->save();
                     $this->redirect('@list_working_groups');
                 } else {
                     print_r('user token');
                     return sfView::ERROR;
                 }
             } else {
                 print_r('$token_seguridad');
                 return sfView::ERROR;
             }
         } else {
             print_r('solicitud objet');
             return sfView::ERROR;
         }
     } else {
         return sfView::ERROR;
     }
 }
 private function executeLevel_top($user, $group)
 {
     $criterio = new Criteria();
     $criterio->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $group->getId());
     $criterio->add(DetalleGrupoTrabajoScPeer::USER_ID, $user->getId());
     $detalleBean = DetalleGrupoTrabajoScPeer::doSelectOne($criterio);
     if (is_object($detalleBean)) {
         if ($detalleBean->getBostId() != 0) {
             return $detalleBean->getBostId();
         } else {
             return null;
         }
     } else {
         return null;
     }
 }