public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); var httpContext = filterContext.HttpContext; if (!httpContext.User.Identity.IsAuthenticated) { return; } var pessoa = _pessoaRepositorio.ObterPeloNomeDeUsuario(httpContext.User.Identity.Name); var modulo = _moduloRepositorio.ObterPor(Modulo); if (modulo == null) { if (pessoa != null && Modulo.ToUpper().Equals("TODOS") && httpContext.Session.ProgramaAtivo() == null) { httpContext.Session.SetProgramaAtivo(pessoa.ProgramasPermitidos[0]); } return; } if (modulo.TemPermissao(pessoa.Usuario)) { httpContext.Session.SetProgramaAtivo(httpContext.Session.ProgramaAtivo() ?? pessoa.ProgramasPermitidos[0]); return; } SemAutorizacaoParaAcessarEssaArea(filterContext); }
public AdicionarPerfilResposta AdicionarPerfil(AdicionarPerfilRequisicao adicionarPerfilRequisicao) { var adicionarPerfilResposta = new AdicionarPerfilResposta(); try { var grupo = _grupoRepositorio.ObterPor(adicionarPerfilRequisicao.CodigoDoGrupo); var modulosPermitidos = adicionarPerfilRequisicao.CodigosDosModulosPermitidos .Select(codigoDoModulo => _moduloRepositorio.ObterPor(codigoDoModulo)).ToList(); adicionarPerfilResposta.Perfil = _perfilServico.AdicionarPerfil(adicionarPerfilRequisicao.Nome, grupo, modulosPermitidos); _unitOfWork.Commit(); adicionarPerfilResposta.Sucesso = true; } catch (RegraException regraException) { adicionarPerfilResposta.Erros = regraException.Erros; } return(adicionarPerfilResposta); }