public object PostSimularAcesso([FromBody] SimularAcessoDados dados) { try { if (GerenciadorSessao.UsuarioLogado == null) { throw new Exception("Usuário não logado"); } var escopo = new SimularAcessoEscopo(); bool result; if (GerenciadorSessao.UsuarioLogado.AreaId == (int)EPortalSistemasArea.Professor) { result = SimularAcessoLoginDocente(dados.GsiUsuarioId, ref escopo); } else { result = SimularAcessoLoginGSI(dados.GsiUsuarioId, ref escopo); } return(new { result = result, mensagens = !escopo.ExistemErros ? escopo.MensagensSucesso : escopo.MensagensErro }); } catch (Exception ex) { return(new { mensagens = ex.CriarErroResposta() }); } }
private bool SimularAcessoLoginDocente(int UsuarioId, ref SimularAcessoEscopo escopo) { try { var Pessoa = escopo.ObterPessoa(UsuarioId); // verifica se os campos foram informados, faz a consulta e verifica se existe algum registro if (Pessoa == null) { throw new Exception("Registro não encontrado"); } bool SimularAcesso = GerenciadorSessao.UsuarioLogado.SimularAcesso; int? UsuarioIdLogin; if (!SimularAcesso) { UsuarioIdLogin = GerenciadorSessao.UsuarioLogado.UsuarioId; } else { UsuarioIdLogin = GerenciadorSessao.UsuarioLogado.UsuarioIdLogin; } UsuarioAutenticacao usuario = new UsuarioAutenticacao { UnidadeEscolar = "escola", Municipio = "Municipio", NomeCompleto = Pessoa.NomeCompleto, Perfil = "Docente", UsuarioId = Pessoa.PessoaId, MostrarTrocaPerfilUnidadeEscolar = true, PessoaId = Pessoa.PessoaId, AreaId = GerenciadorSessao.UsuarioLogado.AreaId, SimularAcesso = true, UsuarioIdLogin = UsuarioIdLogin }; GerenciadorSessao.UsuarioLogado = usuario; return(true); } catch (Exception) { throw; } }
public object GetAcessos([FromUri] SimularAcessoGridFiltro filtro) { try { var escopo = new SimularAcessoEscopo(); var result = escopo.ObterAcessos(filtro, GerenciadorSessao.UsuarioLogado.UsuarioId); return(new { result = result, mensagens = !escopo.ExistemErros ? escopo.MensagensSucesso : escopo.MensagensErro }); } catch (Exception ex) { return(new { mensagens = ex.CriarErroResposta() }); } }
private bool SimularAcessoLoginGSI(int UsuarioId, ref SimularAcessoEscopo escopo) { try { WSGSI webSerciceGSI = new WSGSI(); //Obtem Usuário do GSI pelo UsuarioId dele var usuario = webSerciceGSI.GSI_SelecionaUsuarioID_SO(UsuarioId, sUser, sPwd); if (usuario == null) { throw new Exception("Usuario não encontrado!"); } //Obtêm os grupos permitidos ao usuário para o sistema List <GrupoSistemaUsuarioWS> GrupoSistemaUsuario = webSerciceGSI.GSI_SelecionaGrupoSistemaUsuario_SO(usuario.UsuarioID, sistemaId, sUser, sPwd).ToList(); if (!GrupoSistemaUsuario.Any()) { throw new Exception("O usuário não tem permissão para este sistema!"); } //Obtêm a lista de sistemas permitidos ao usuário var sistemas = webSerciceGSI.GSI_SelecionaSistemasUsuario(usuario.UsuarioID, sUser, sPwd); //Carrega Menus do sistema string Menu = string.Empty; Menu = webSerciceGSI.GSI_SelecionaMenu_TokenCompleto(usuario.UsuarioID, GrupoSistemaUsuario[0].GrupoID, GrupoSistemaUsuario[0].cod_estrutura, sistemaId, sUser, sPwd); var menu = this.MontarMenu(Menu); //Carrega permissões GeoEstrutura //List<int> ListaGeoEstruturaID = new List<int>(); //foreach (GrupoSistemaUsuarioWS grupo in GrupoSistemaUsuario) //{ // ListaGeoEstruturaID.Add(grupo.cod_estrutura); //} //Mantêm os dados do Portal do Usuário escopo.ManterDadosPortalUsuario(GrupoSistemaUsuario[0].cod_estrutura, usuario.UsuarioID, usuario.NomeUsuario, usuario.Email, usuario.LoginAD, usuario.NomeDominio, GrupoSistemaUsuario[0].GrupoID, GrupoSistemaUsuario[0].NomeGrupo); bool SimularAcesso = GerenciadorSessao.UsuarioLogado.SimularAcesso; int? UsuarioIdLogin; if (!SimularAcesso) { UsuarioIdLogin = GerenciadorSessao.UsuarioLogado.UsuarioId; } else { UsuarioIdLogin = GerenciadorSessao.UsuarioLogado.UsuarioIdLogin; } GerenciadorSessao.UsuarioLogado = new UsuarioAutenticacao { NomeCompleto = usuario.NomeUsuario, Perfil = GrupoSistemaUsuario[0].NomeGrupo, UsuarioId = usuario.UsuarioID, MenuHtml = menu.ToString(), ListaSistemasSiglas = sistemas.Select(x => x.SiglaSistema).ToList(), SimularAcesso = true, UsuarioIdLogin = UsuarioIdLogin, AreaId = GerenciadorSessao.UsuarioLogado.AreaId }; return(true); } catch (Exception) { throw; } }