Пример #1
0
 public function saveSistemas($entity, $dto)
 {
     $data = $dto->getSistemas();
     $this->_getRepository()->deletePerfilPadraoUsuario($entity->getSqUsuarioExterno());
     $entityManager = $this->getEntityManager();
     foreach ($data['sqPerfil'] as $sqPerfil) {
         $entityPerfil = $entityManager->getPartialReference('app:Perfil', $sqPerfil);
         $entityUsuarioPerfilExterno = new \Sica\Model\Entity\UsuarioExternoPerfil();
         $entityUsuarioPerfilExterno->setSqUsuarioExterno($entity);
         $entityUsuarioPerfilExterno->setSqPerfil($entityPerfil);
         $entityManager->persist($entityUsuarioPerfilExterno);
     }
 }
Пример #2
0
 public function saveBindProfile(\Core_Dto_Mapping $mapping, array $perfis)
 {
     $queryPerfis = $this->_em->createQueryBuilder();
     $queryPerfis->select('p.sqPerfil')->from('app:Perfil', 'p')->where($queryPerfis->expr()->eq('p.sqSistema', ':sistema'))->setParameter('sistema', $mapping->getSqSistema());
     $perfisFound = $queryPerfis->getQuery()->getArrayResult();
     $inPerfil = array();
     foreach ($perfisFound as $perfil) {
         $inPerfil[] = $perfil['sqPerfil'];
     }
     $criteria = array('sqUsuarioExterno' => $mapping->getUsuario());
     if ($inPerfil) {
         $criteria['sqPerfil'] = $inPerfil;
     }
     $usuarioExtPerfil = $this->getEntityManager()->getRepository('app:UsuarioExternoPerfil')->findBy($criteria);
     foreach ($usuarioExtPerfil as $usuarioPerfil) {
         $this->getEntityManager()->remove($usuarioPerfil);
         $this->getEntityManager()->flush();
     }
     $usuario = $this->_em->find('app:UsuarioExterno', $mapping->getUsuario());
     foreach ($perfis as $perfil) {
         $entityPerfil = $perfil->getEntity();
         $this->_em->getUnitOfWork()->registerManaged($entityPerfil, array('sqPerfil' => $entityPerfil->getSqPerfil()), array());
         $usuarioPerfil = new \Sica\Model\Entity\UsuarioExternoPerfil();
         $usuarioPerfil->setSqPerfil($entityPerfil);
         $usuarioPerfil->setSqUsuarioExterno($usuario);
         $this->_em->persist($usuarioPerfil);
     }
     $this->_em->flush();
 }