public function insert(array $data, $entity)
 {
     //antes de inserir o sistema deve criar um usuário para associar ao funcionario
     $dataUser = array('login' => $data['login'], 'senha' => $data['senha'], 'grupo' => $data['perfil']);
     $serviceUsuario = $this->getServiceLocator()->get('security-service-usuario');
     $usuario = $serviceUsuario->insert($dataUser, 'Security\\Entity\\Usuario');
     if ($usuario) {
         $data['usuario'] = $usuario;
         $data['usuario_id'] = $usuario->getId();
         return parent::insert($data, $entity);
     } else {
         return false;
     }
 }
 public function alterarDadosAcesso(array $data, $id)
 {
     /**
      * @var $usuario \Security\Entity\Usuario
      */
     $usuario = $this->getEmRef('Security\\Entity\\Usuario', $id);
     if ($usuario) {
         if ($this->checaSenhaAtualUsuario($usuario, $data['senha_atual'])) {
             $dataUser = $usuario->toArray();
             $dataUser['senha'] = $usuario->encryptPassword($data["nova_senha"]);
             return parent::update($dataUser, 'Security\\Entity\\Usuario', $id);
         }
         return false;
     }
     return false;
 }
 /** 3 adicionar permissão de recurso novo */
 public function adicionarPermissaoRecursosNovos($idGrupo, $recursosNovos = array())
 {
     if (!empty($recursosNovos)) {
         $novosRecursoSistema = array();
         $grupo = $this->getEmRef('Security\\Entity\\Grupo', $idGrupo);
         foreach ($recursosNovos as $recurso) {
             $entityRecursoSistema = $this->getEm('Security\\Entity\\RecursoSistema')->findOneByUrl($recurso);
             if (!$entityRecursoSistema) {
                 $novoRecurso = new RecursoSistema(array('url' => $recurso));
                 $dataPermissao = array('grupo' => $grupo, 'recursoSistema' => $novoRecurso, 'permissao' => 'allow');
                 $novosRecursoSistema[] = parent::insert($dataPermissao, 'Security\\Entity\\PermissaoAcl');
             }
         }
     }
     return $novosRecursoSistema;
 }