} // CopiarAutorizações

        #region Métodos privados
        private AutorizarUsuarioViewModel PreencheModel(AutorizarUsuarioViewModel model)
        {
            string      copia = model.UsuarioCopia;
            Autorizacao auth  = new Autorizacao();

            auth.Usuario            = new Profissional();
            auth.Usuario.Codigo     = model.NomeUsuario;
            auth.UsuarioAutorizando = usuario;
            auth.OrgaoAutorizado    = new Orgao();
            if (auth.UsuarioAutorizando.Perfil != Perfil.GERENTE)
            {
                auth.OrgaoAutorizado.Sigla = usuario.OrgaoAtual.Sigla;
            }

            IList <Autorizacao> autorizacoes = new List <Autorizacao>();

            autorizacoes.Add(auth);

            model.PreencherDadosView(autorizacoes);
            model.UsuarioLiberacao = usuario;
            model = new FachadaAdmWeb <AutorizarUsuarioViewModel>().Consultar(model)[0];

            model.UsuarioCopia = copia;

            return(model);
        }
        /// <summary>
        /// Método responsável por cumprir o requisito de Autorizar Usuários Cadastrados em Aplicativos
        /// previamente cadastrados.
        ///     Quando chamado em GET - Retorna a tela de Autorizar Usuário
        ///     Quando chamado em POST - Retorna a tela de Cadastrar
        /// </summary>
        /// <returns>A tela de Cadastrar Aplicativo (GET) ou A tela de Index
        ///          podendo ou não conter uma mensamge de erro (Post)</returns>
        public ActionResult AutorizarUsuario(AutorizarUsuarioViewModel dados)
        {
            #region Decidir se deve proseguir com a requisição
            AutorizarUsuarioViewModel model = new AutorizarUsuarioViewModel();


            ActionResult urlRetorno = DecideUrlFormulários("/Autorizacao/AutorizarUsuario", model);
            if (urlRetorno != null)
            {
                if (usuario != null) // Usuario preenchido com os dados da seção na superclasse
                {
                    model = PreencheModel(model);
                }
                return(urlRetorno); // ação que deve ser retornada para o browser
            }
            #endregion


            IList <Autorizacao> autorizacoes = new List <Autorizacao>();
            dados.UsuarioLiberacao = usuario;
            autorizacoes           = dados.CriarModelo();

            IFachada <Autorizacao> fachada = new FachadaAdmWeb <Autorizacao>();
            string retorno;

            if (Request["Salvar"] != null)
            {
                retorno = fachada.SalvarTodos(autorizacoes);
            }
            else if (Request["Alterar"] != null)
            {
                retorno = fachada.AlterarTodos(autorizacoes);
            }
            else if (Request["Inativar"] != null)
            {
                Autorizacao auxiliar = new Autorizacao();
                auxiliar.OrgaoAutorizado = autorizacoes[0].OrgaoAutorizado;
                auxiliar.Usuario         = autorizacoes[0].Usuario;

                retorno = fachada.Excluir(autorizacoes[0]);
            }
            else
            {
                retorno = "Opção Inválida";
            }

            if (retorno != null) // se retornar null, é porque ocorreu tudo bem
            {
                ViewBag.Mensagem = retorno;
                model            = PreencheModel(autorizacoes, model);
                return(View(model));
            }

            ViewBag.Mensagem = "Autorizado com sucesso!";
            return(View("../Home/Index"));
        } // AutorizarUsuario
Пример #3
0
        public override IList <object> Consultar(object entidade)
        {
            AutorizarUsuarioViewModel model = entidade as AutorizarUsuarioViewModel;
            string         sql     = "";
            IList <object> retorno = new List <object>();

            retorno.Add(model);

            if (model.UsuarioLiberacao.Perfil == Perfil.GERENTE) // é gerente??
            {
                // selecionar todas as rotinas disponíveis
                sql = "select des_submen " + // 0
                      "from   sis_submenu_aplicativo " +
                      "order by des_submen";
                comando = new SqlCommand(sql, conexao, transacao);
            }
            else // Perfil de autorizador:
            {
                // selecionar apenas rotinas que ele tenha permissão
                sql = "select ss.des_submen " + // 0
                      "from   sis_submenu_aplicativo ss, " +
                      "sis_rel_usuario_submenu rs " +
                      "where  rs.cod_orgao = ? and " +
                      "rs.cod_usuari = ? and " +
                      "rs.nom_aplica = ss.nom_aplica and " +
                      "rs.nom_menu = ss.nom_menu and " +
                      "rs.nom_submen = ss.nom_submen and " +
                      "(rs.dat_fim_libera is null or " +
                      "rs.dat_fim_libera >= Date('Now')) and " +
                      "(rs.dat_inicio_libera is null or " +
                      "rs.dat_inicio_libera <= Date('Now')) " +
                      "order by des_submen";
                comando = new SqlCommand(sql, conexao, transacao);
                comando.Parameters.Add(new SqlParameter("cod_orgao",  // cod_orgao
                                                        model.UsuarioLiberacao.OrgaoAtual.Codigo));
                comando.Parameters.Add(new SqlParameter("cod_usuari", // cod_usuari
                                                        model.UsuarioLiberacao.Codigo));
            }

            dataReader = comando.ExecuteReader();
            model.RotinasDisponíveis = new List <string>();
            while (dataReader.Read())
            {
                model.RotinasDisponíveis.Add(dataReader.GetString(0)); // des_submen
            }
            dataReader.Close();                                        // fechar para usar depois

            return(retorno);
        }
        private IList <Profissional> ConsultaUsuarioNoBanco(AutorizarUsuarioViewModel model, IFachada <Profissional> fachada)
        {
            if (model.NomeUsuario == null)
            {
                model.NomeUsuario = "";
            }


            Profissional user = new Profissional {
                Codigo = model.NomeUsuario.Trim()
            };
            IList <Profissional> resultados = fachada.Consultar(user);

            fachada = null; // limpando fachada que não será mais utilizada

            return(resultados);
        } // ConsultarUsuario
        private AutorizarUsuarioViewModel PreencheModel(IList <Autorizacao> autorizacoes, AutorizarUsuarioViewModel model)
        {
            string copia = model.UsuarioCopia;

            model = new AutorizarUsuarioViewModel();
            model.PreencherDadosView(autorizacoes);
            model.UsuarioCopia     = copia;
            model.UsuarioLiberacao = usuario;

            if (fachadaVM == null) // Instanciou a fachadaVM??
            {
                fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>();
            }

            model = fachadaVM.Consultar(model)[0];

            return(model);
        }
        public ActionResult ConsultarUsuario(AutorizarUsuarioViewModel model)
        {
            #region Decidir se deve proseguir com a requisição
            Autorizacao  auth;
            ActionResult urlRetorno = DecideUrlFormulários("/Autorizacao/AutorizarUsuario", model);
            if (urlRetorno != null)
            {
                if (usuario != null) // Usuario preenchido com os dados da seção na superclasse
                {
                    model = PreencheModel(model);
                }
                return(urlRetorno); // ação que deve ser retornada para o browser
            }

            #endregion

            IFachada <Profissional> fachada = new FachadaAdmWeb <Profissional>();
            fachada.DefineTemQueFecharConexao(false);

            IList <Profissional> resultados = this.ConsultaUsuarioNoBanco(model, fachada);


            if (resultados == null || resultados.Count == 0)
            {
                ViewBag.Mensagem = "Nenhum Usuário encontrado (" + model.NomeUsuario.Trim() + ")";

                // Por padrão, fecha ao finalizar a transação
                fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>();
                fachadaVM.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva());     // manter conexão
                fachadaVM.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // manter trasação

                model = PreencheModel(model);
            }
            else if (resultados.Count == 1)
            {
                auth                    = new Autorizacao();
                auth.Usuario            = resultados[0];
                auth.UsuarioAutorizando = usuario;

                IFachada <Autorizacao> fachadaAuth = new FachadaAdmWeb <Autorizacao>();
                fachadaAuth.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva());     // manter conexao
                fachadaAuth.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // manter transacao
                fachadaAuth.DefineTemQueFecharConexao(false);                     // Não deve fechar

                IList <Autorizacao> autorizacoes = fachadaAuth.Consultar(auth);
                if (autorizacoes == null)
                {
                    autorizacoes = new List <Autorizacao>();
                    if (auth.UsuarioAutorizando.Perfil == Perfil.AUTORIZADOR)
                    {
                        auth.OrgaoAutorizado = auth.UsuarioAutorizando.OrgaoAtual;
                    }
                    autorizacoes.Add(auth);
                }

                // Por padrão, fecha ao finalizar a transação
                fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>();
                fachadaVM.SalvaConexaoAtiva(fachadaAuth.RetornaConexaoAtiva());     // manter conexão
                fachadaVM.SalvaTransacaoAtiva(fachadaAuth.RetornaTransacaoAtiva()); // manter trasação


                model = PreencheModel(autorizacoes, model);
            }



            return(View("AutorizarUsuario", model));
        }
        public ActionResult CopiarAutorizacao(CopiarAutorizacaoViewModel model, AutorizarUsuarioViewModel modelRetorno)
        {
            #region Decidir se deve proseguir com a requisição

            ActionResult urlRetorno = DecideUrlFormulários("/Autorizacao/AutorizarUsuario", modelRetorno);
            if (urlRetorno != null)
            {
                if (usuario != null) // Usuario preenchido com os dados da seção na superclasse
                {
                    modelRetorno = PreencheModel(modelRetorno);
                }
                return(urlRetorno); // ação que deve ser retornada para o browser
            }
            #endregion

            modelRetorno.UsuarioLiberacao = model.UsuarioLiberacao = usuario;

            IList <Autorizacao> autorizacoes = modelRetorno.CriarModelo();

            CopiaDeAutorizacao copia = model.CriarModelo();

            IList <CopiaDeAutorizacao>    retorno = new List <CopiaDeAutorizacao>();
            IFachada <CopiaDeAutorizacao> fachada = new FachadaAdmWeb <CopiaDeAutorizacao>();
            fachada.DefineTemQueFecharConexao(false); // manter transação e conexão aberta

            string msgValidacao = fachada.ConsultarComValidacao(copia, retorno);


            if (msgValidacao != null)
            {
                ViewBag.Mensagem = msgValidacao;

                fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>();
                fachadaVM.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva());     // mantém conexão anterior
                fachadaVM.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // mantém transação anterior


                return(View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno)));
            }
            else if (retorno == null || retorno.Count == 0)
            {
                fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>();    // Por padrão fecha a conexão
                fachadaVM.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva());     // mantém conexão anterior
                fachadaVM.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // mantém transação anterior

                ViewBag.Mensagem = "Não há validações para copiar";


                return(View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno)));
            }



            fachada.DefineTemQueFecharConexao(true); // a próxima operação é a última
            msgValidacao = fachada.SalvarTodos(retorno);

            if (msgValidacao != null)
            {
                ViewBag.Mensagem = msgValidacao;
            }
            else
            {
                ViewBag.Mensagem = "Autorizações copiadas com sucesso.";
            }

            //return View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno));
            return(View("../Home/Index"));
        } // CopiarAutorizações