public function dbparamAction() { $this->dbAdapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter'); $usuario = new UsuarioTable($this->dbAdapter); $tsession = new SessionTable($this->dbAdapter); $id_db = $this->params()->fromRoute('id', 0); $sid = new Container('base'); $dbParam = $sid->offsetGet('dbParam'); for ($i = 0; $i < count($dbParam); $i++) { if ($id_db == $dbParam[$i]['id']) { $id_perfil = $dbParam[$i]['id_perfil']; $nro_session = $dbParam[$i]['nro_session']; $db_nombre = $dbParam[$i]['nombre_db']; $nombreComercial = $dbParam[$i]['nombre']; $perfil = $dbParam[$i]['perfil']; break; } } $id_usuario = $sid->offsetGet('id_usuario'); $nroSessionDB = count($tsession->obtenetSesion($id_usuario, $id_db)); if ($nro_session > 0 && $nroSessionDB >= $nro_session) { $sid->getManager()->getStorage()->clear(); if (isset($_COOKIE['usuario'])) { unset($_COOKIE['usuario']); } if (isset($_COOKIE['password'])) { unset($_COOKIE['password']); } //return $this->forward()->dispatch('Application\Controller\Login',array('action'=>'index','id'=>4)); return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/application/login/index/4'); } $sid->offsetSet('dbNombre', $db_nombre); $sid->offsetSet('nombreComercial', $nombreComercial); $sid->offsetSet('id_db', $id_db); $sid->offsetSet('perfil', $perfil); $valores = array('id_usuario' => $id_usuario, 'id_db' => $id_db, 'ip_cliente' => $_SERVER['REMOTE_ADDR'], 'port_cliente' => $_SERVER['REMOTE_PORT']); $sid->offsetSet('idSession', $tsession->crearSesion($valores)); //Mapeamos la base de datos $modulo = $usuario->getModulo($this->dbAdapter, $id_perfil); $sid->offsetSet('modulo', $modulo); if (count($modulo) > 1) { $urlHome = 'application'; } else { $urlHome = $modulo[0]['url']; } $sid->offsetSet('urlHome', $urlHome); return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/' . $urlHome); //return new ViewModel(); }
public function sendAction() { $data = $this->getRequest()->getPost(); if ($data['usuariobecheck'] != null && $data['password2'] != null) { $this->dbAdapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter'); $usuario = new UsuarioTable($this->dbAdapter); $listaUsuario = $usuario->getUsuario($data['usuariobecheck'], strrev($data['password2'])); if (!empty($listaUsuario)) { if ($listaUsuario[0]['activo'] == '1') { //Obtener la lista de edificios que pertenece $dbTable = new DbTable($this->dbAdapter); $listDb = $dbTable->listDBUser($this->dbAdapter, $listaUsuario[0]['id']); //Obtenemos id_perdet $this->dbAdapter2 = $this->getServiceLocator()->get($listDb[0]['nombre_db']); $per = new PersonaDetTable($this->dbAdapter2); $perdet = $per->getDatosxPersona($listaUsuario[0]['id']); if (empty($listDb)) { return $this->forward()->dispatch('Application\\Controller\\Login', array('action' => 'index', 'id' => 5)); } //Verificamos la licencia del usuario $nroSession = (int) $listDb[0]['nro_session']; $tsession = new SessionTable($this->dbAdapter); $nroSessionDB = count($tsession->obtenetSesion($listaUsuario[0]['id'], $listDb[0]['id'])); if ($nroSession > 0 && $nroSessionDB >= $nroSession) { return $this->forward()->dispatch('Application\\Controller\\Login', array('action' => 'index', 'id' => 4)); } else { //Iniciamos la session $sid = new Container('base'); $sid->offsetSet('usuario', $listaUsuario[0]['usuario']); $sid->offsetSet('id_usuario', $listaUsuario[0]['id']); $sid->offsetSet('id_persona', $listaUsuario[0]['id_persona']); $sid->offsetSet('id_db', $listDb[0]['id']); $sid->offsetSet('id_perdet', $perdet[0]['id']); $sid->offsetSet('id_unidad', $perdet[0]['id_unidad']); //Usuario posee mas edificios if (count($listDb) > 1) { $sid->offsetSet('dbParam', $listDb); return $this->forward()->dispatch('Application\\Controller\\Index', array('action' => 'db')); } else { $sid->offsetSet('nombreComercial', $listDb[0]['nombre']); $sid->offsetSet('id_db', $listDb[0]['id']); $sid->offsetSet('perfil', $listDb[0]['perfil']); } // si posee un edificio insertamos la session con su respectiva db $valores = array('id_usuario' => $listaUsuario[0]['id'], 'id_db' => $listDb[0]['id'], 'ip_cliente' => $_SERVER['REMOTE_ADDR'], 'port_cliente' => $_SERVER['REMOTE_PORT']); $sid->offsetSet('idSession', $tsession->crearSesion($valores)); //Mapeamos la base de datos $sid->offsetSet('dbNombre', $listDb[0]['nombre_db']); $modulo = $usuario->getModulo($this->dbAdapter, $listDb[0]['id_perfil']); $sid->offsetSet('modulo', $modulo); if (count($modulo) > 1) { $urlHome = 'application'; } else { $urlHome = $modulo[0]['url']; } $sid->offsetSet('urlHome', $urlHome); return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/' . $urlHome); } } else { return $this->forward()->dispatch('Application\\Controller\\Login', array('action' => 'index', 'id' => 2)); } } else { return $this->forward()->dispatch('Application\\Controller\\Login', array('action' => 'index', 'id' => 1)); } } else { return $this->forward()->dispatch('Application\\Controller\\Login', array('action' => 'index', 'id' => 1)); } return new ViewModel(array('data' => $idSession)); }