/** * Asigna una app a un proyecto * y le da permisos de acceso al usuario en curso y * todos los usuarios adscritos a la empresa * * @return boolean */ public function create() { $id = parent::create(); if ($id) { $idEmpresa = $this->getIdProyecto()->getIdEmpresa()->getId(); $idProyecto = $this->getIdProyecto()->getId(); // Asignar permiso de acceso al usuario en curso $permiso = new PcaePermisos(); $permiso->setIdUsuario($_SESSION['usuarioPortal']['Id']); $permiso->setIdEmpresa($idEmpresa); $permiso->setIdProyecto($idProyecto); $permiso->setIdApp($this->IdApp); $permiso->create(); // Asignar permiso de acceso a todos los usuarios adscritos a la empresa $usuario = new PcaeEmpresasUsuarios(); $rows = $usuario->cargaCondicion("IdUsuario", "IdEmpresa='{$idEmpresa}'"); unset($usuario); foreach ($rows as $row) { if ($row['IdUsuario'] != $_SESSION['usuarioPortal']['Id']) { $permiso = new PcaePermisos(); $permiso->setIdUsuario($row['IdUsuario']); $permiso->setIdEmpresa($idEmpresa); $permiso->setIdProyecto($idProyecto); $permiso->setIdApp($this->IdApp); $permiso->create(); } } } 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; }