/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }