static function getProyectos($idApp) { $proyectos = new PcaeProyectosApps(); $rows = $proyectos->cargaCondicion("*", "IdApp={$idApp}", "Id ASC"); unset($proyectos); return $rows; }
/** * Devuelve un array de objetos \PcaeApps * asociados al proyecto en curso. * * @return array Array de objetos \PcaeApps */ public function getApps() { $apps = array(); $app = new PcaeProyectosApps(); $rows = $app->cargaCondicion("IdApp", "IdProyecto='{$this->Id}'"); unset($app); foreach ($rows as $row) { $apps[] = new PcaeApps($row['IdApp']); } return $apps; }
/** * Comprueba la unicidad de IdProyecto-IdApp */ public function validaLogico() { parent::validaLogico(); if (!$this->Id) { $proApp = new PcaeProyectosApps(); $rows = $proApp->cargaCondicion("Id", "IdProyecto='{$this->IdProyecto}' AND IdApp='{$this->IdApp}'"); unset($proApp); if (count($rows)) { $this->_errores[] = "Ya existe esa App en el proyecto"; } } }
/** * Asigno permiso al usuario-proyecto-app * * Y además creo el usuario en el cpanel del proyecto. * * @return boolean */ public function create() { $id = parent::create(); if ($id) { // Para saber el perfil que tiene el usuario con la empresa. $usuario = new PcaeUsuarios($this->IdUsuario); $perfil = $usuario->getPerfilEmpresa($this->IdEmpresa); $idPerfil = $perfil->getId(); unset($usuario); unset($perfil); $proyectoApp = new PcaeProyectosApps(); $filtro = "IdProyecto='{$this->IdProyecto}' AND IdApp='{$this->IdApp}'"; $rows = $proyectoApp->cargaCondicion("*", $filtro); unset($proyectoApp); $row = $rows[0]; if ($row['Id']) { $connection = array('dbEngine' => $row['DbEngine'], 'host' => $row['Host'], 'user' => $row['User'], 'password' => $row['Password'], 'dataBase' => $row['Database']); $em = new EntityManager($connection); if ($em->getDbLink()) { $query = "select Id from {$connection['dataBase']}.CpanUsuarios where IdUsuario='{$this->IdUsuario}'"; $em->query($query); $rows = $em->fetchResult(); $id = $rows[0]['Id']; if ($id) { $query = "update {$connection['dataBase']}.CpanUsuarios set IdPerfil='{$idPerfil}' where Id='{$id}'"; $em->query($query); } else { $query = "insert into {$connection['dataBase']}.CpanUsuarios (IdUsuario,IdPerfil,IdRol,IdTipoUsuario) values ('{$this->IdUsuario}','{$idPerfil}','1','1');"; $em->query($query); $lastId = $em->getInsertId(); $query = "update {$connection['dataBase']}.CpanUsuarios set SortOrder='{$lastId}', PrimaryKeyMD5='" . md5($lastId) . "' WHERE Id='{$lastId}'"; $em->query($query); } $em->desConecta(); } unset($em); } } return $id; }
/** * Devuelve un array anidado con las empresa, proyectos * y aplicaciones a los que tiene acceso el usuario en curso. * * @return array */ public function getArrayAccesos() { $accesos = array(); $permisos = new PcaePermisos(); $rows = $permisos->cargaCondicion("IdEmpresa,IdProyecto,IdApp", "IdUsuario='{$this->Id}'", "IdEmpresa,IdProyecto,IdApp ASC"); unset($permisos); $empAnt = ''; $proAnt = ''; foreach ($rows as $row) { if ($empAnt != $row['IdEmpresa']) { $empresa = new PcaeEmpresas($row['IdEmpresa']); $accesos['empresas'][$row['IdEmpresa']] = array('empresa' => $empresa->getRazonSocial(), 'perfil' => $this->getPerfilEmpresa($row['IdEmpresa'])->getPerfil()); unset($empresa); } if ($proAnt != $row['IdProyecto']) { $proyecto = new PcaeProyectos($row['IdProyecto']); $accesos['empresas'][$row['IdEmpresa']]['proyectos'][$row['IdProyecto']] = array('proyecto' => $proyecto->getProyecto()); unset($proyecto); } $app = new PcaeApps($row['IdApp']); $proyectoApp = new PcaeProyectosApps(); $keyProyectoApp = $proyectoApp->cargaCondicion("PrimaryKeyMD5", "IdProyecto='{$row['IdProyecto']}' AND IdApp='{$row['IdApp']}'"); $accesos['empresas'][$row['IdEmpresa']]['proyectos'][$row['IdProyecto']]['apps'][$row['IdApp']] = array('aplicacion' => $app->getAplicacion(), 'url' => $app->getUrl(), 'IdProyectoApp' => $keyProyectoApp[0]['PrimaryKeyMD5']); unset($app); unset($proyectoApp); $proAnt = $row['IdProyecto']; $empAnt = $row['IdEmpresa']; } return $accesos; }