private void AssociarPermissaoAoObjeto(MensagemResponseBase lItem, string nomePermissao, bool associar) { //nomePermissao = lDados.Interface.Trim() + "Executar"; PermissaoInfo lPermissao = this.ListaDePermissoes.Find(p => p.GetType().Name == nomePermissao); if ((lPermissao != null) && ((lItem != null)) && ((lItem is ReceberUsuarioGrupoResponse))) { PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao); if (lPermAssoc == null) { if (associar) { ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Add(new PermissaoAssociadaInfo() { CodigoPermissao = lPermissao.CodigoPermissao, Status = PermissaoAssociadaStatusEnum.Permitido }); } } else { if (!associar) { ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Remove(lPermAssoc); } } } else { PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao); if (lPermAssoc == null) { if (associar) { ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Add(new PermissaoAssociadaInfo() { CodigoPermissao = lPermissao.CodigoPermissao, Status = PermissaoAssociadaStatusEnum.Permitido }); } } else { if (!associar) { ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Remove(lPermAssoc); } } } }
public virtual void SalvarObjeto(PermissaoAssociadaInfo permissaoAssociada, string codigoItem) { // Monta a execução da procedure // Lista de parametros para a procedure Dictionary <string, object> paramsProc = new Dictionary <string, object>(); paramsProc.Add("@CodigoItem", codigoItem); paramsProc.Add("@CodigoPermissao", permissaoAssociada.CodigoPermissao); paramsProc.Add("@Status", permissaoAssociada.Status); DbLib.ExecutarProcedure( NomeProcIns, paramsProc, new List <string>()); }
/// <summary> /// Método que busca no banco de dados informações de usuario vinculado com suas permissões /// </summary> /// <param name="pParametro">Parametro de request com o Código de usuário do para /// buscar suas permissões no banco de dados de controle de acesso</param> /// <returns>Retorna o objeto preechido com Código de usuário e a lista de permissões</returns> public ReceberUsuarioResponse ListarIntranetPermissoesUsuario(UsuarioPermissaoInfo pParametro) { var lRetorno = new ReceberUsuarioResponse(); try { var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = gNomeConexaoControleAcesso; lRetorno.Usuario = new UsuarioInfo(); lRetorno.Usuario.CodigoUsuario = pParametro.CodigoUsuario.ToString(); lRetorno.Usuario.Permissoes = new List <PermissaoAssociadaInfo>(); using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_PermissoesPorUsuario_Intranet_sel")) { lAcessaDados.AddInParameter(lDbCommand, "@CodigoUsuario", DbType.Int32, pParametro.CodigoUsuario); DataTable lTable = lAcessaDados.ExecuteDbDataTable(lDbCommand); if (lTable != null && lTable.Rows.Count > 0) { for (int i = 0; i < lTable.Rows.Count; i++) { DataRow lRow = lTable.Rows[i]; var lPermissao = new PermissaoAssociadaInfo(); lPermissao.CodigoPermissao = lRow["CodigoPermissao"].DBToString(); lRetorno.Usuario.Permissoes.Add(lPermissao); } } } } catch (Exception ex) { throw (ex); } return(lRetorno); }
public string ResponderSalvar() { string lRetorno = string.Empty; string lObjetoJson = Request.Params["ObjetoJson"]; string TipoDeObjeto = Request["TipoDeObjetoPai"]; MensagemRequestBase lRequest; MensagemResponseBase lResponse; bool lTinhaGTI = false; bool lTinhaStock = false; try { TransporteSegurancaPermissao lDados = JsonConvert.DeserializeObject <TransporteSegurancaPermissao>(lObjetoJson); switch (TipoDeObjeto) { case "Usuario": lRequest = new ReceberUsuarioRequest() { CodigoSessao = this.CodigoSessao, CodigoUsuario = lDados.ParentId }; lResponse = this.ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequest); break; case "Grupo": lRequest = new ReceberUsuarioGrupoRequest() { CodigoSessao = this.CodigoSessao, CodigoUsuarioGrupo = lDados.ParentId }; lResponse = this.ServicoSeguranca.ReceberUsuarioGrupo((ReceberUsuarioGrupoRequest)lRequest); break; case "Perfil": lRequest = new ReceberPerfilRequest() { CodigoSessao = this.CodigoSessao, CodigoPerfil = lDados.ParentId }; lResponse = this.ServicoSeguranca.ReceberPerfil((ReceberPerfilRequest)lRequest); break; default: return(RetornarErroAjax("Só é possível salvar permissões para grupos, usuários e perfis.")); } if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK) { MensagemRequestBase lRequestBase; MensagemResponseBase lResponseBase = new MensagemResponseBase(); if (lResponse is ReceberUsuarioResponse) { PermissaoAssociadaInfo lPermissao; UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario; //precisa verificar todas que tinha antes pra não re-enviar o email quando uma outra permissão que não a do GTI ou Stock forem adicionadas foreach (Gradual.OMS.Seguranca.Lib.PermissaoAssociadaInfo lPerm in lUsuario.Permissoes) { if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper()) { lTinhaGTI = true; } if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper()) { lTinhaStock = true; } } lUsuario.Permissoes.Clear(); var lCount = default(int); do { lPermissao = new PermissaoAssociadaInfo() { CodigoPermissao = lDados.Permissoes.Count > 0 ? lDados.Permissoes[lCount] : string.Empty, Status = PermissaoAssociadaStatusEnum.Permitido }; lUsuario.Permissoes.Add(lPermissao); lRequestBase = new SalvarUsuarioRequest() { CodigoSessao = this.CodigoSessao, Usuario = lUsuario }; lResponseBase = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lRequestBase); if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK) { base.RegistrarLogInclusao(new LogIntranetInfo() { CdBovespaClienteAfetado = lUsuario.CodigoUsuario.DBToInt32(), DsObservacao = string.Format("Cód. Usuário logado: {0}; Nome do cliente: {1}; e-Mail:", base.UsuarioLogado.Id, lUsuario.Nome, lUsuario.Email), }); if (TipoDeObjeto == "Usuario") { if (!lTinhaGTI && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper()) { EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Gradual Trader Interface (GTI)"); } if (!lTinhaStock && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper()) { EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Stock Market"); } } } lCount++; } while (lDados.Permissoes.Count > lCount); } else if (lResponse is ReceberUsuarioGrupoResponse) { PermissaoAssociadaInfo lPermissao; UsuarioGrupoInfo lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo; foreach (string itemPermissao in lDados.Permissoes) { lPermissao = new PermissaoAssociadaInfo() { CodigoPermissao = itemPermissao, Status = PermissaoAssociadaStatusEnum.Permitido }; lUsuarioGrupo.Permissoes.Add(lPermissao); lRequestBase = new SalvarUsuarioGrupoRequest() { CodigoSessao = this.CodigoSessao, UsuarioGrupo = lUsuarioGrupo }; lResponseBase = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lRequestBase); } } else { PermissaoAssociadaInfo lPermissao; PerfilInfo lPerfil = ((ReceberPerfilResponse)lResponse).Perfil; lPerfil.Permissoes.Clear(); foreach (string itemPermissao in lDados.Permissoes) { lPermissao = new PermissaoAssociadaInfo() { CodigoPermissao = itemPermissao, Status = PermissaoAssociadaStatusEnum.Permitido }; lPerfil.Permissoes.Add(lPermissao); lRequestBase = new SalvarPerfilRequest() { CodigoSessao = this.CodigoSessao, Perfil = lPerfil }; lResponseBase = ServicoSeguranca.SalvarPerfil((SalvarPerfilRequest)lRequestBase); } } if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK) { return(RetornarSucessoAjax("Permissão associada com sucesso.")); } else { return(RetornarErroAjax(lResponseBase.DescricaoResposta)); } } else { return(RetornarErroAjax(lResponse.DescricaoResposta)); } } catch (Exception ex) { return(RetornarErroAjax(ex.Message)); } }