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; } }