Beispiel #1
0
        public async Task<string> ModificarPerfil(Guid perfil)
        {
            string loginAtual = servicoUsuario.ObterLoginAtual();
            string codigoRfAtual = servicoUsuario.ObterRf();

            await servicoUsuario.PodeModificarPerfil(perfil, loginAtual);

            var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfil);

            if (permissionamentos == null || !permissionamentos.Any())
            {
                throw new NegocioException($"Não foi possível obter os permissionamentos do perfil selecionado");
            }
            else
            {
                var listaPermissoes = permissionamentos
                    .Distinct()
                    .Select(a => (Permissao)a)
                    .ToList();

                await servicoAbrangencia.Salvar(loginAtual, perfil, false);

                return servicoTokenJwt.GerarToken(loginAtual, codigoRfAtual, perfil, listaPermissoes);
            }
        }
Beispiel #2
0
        public async Task <TrocaPerfilDto> ModificarPerfil(Guid perfil)
        {
            string loginAtual     = servicoUsuario.ObterLoginAtual();
            string codigoRfAtual  = servicoUsuario.ObterRf();
            string nomeLoginAtual = servicoUsuario.ObterNomeLoginAtual();

            await servicoUsuario.PodeModificarPerfil(perfil, loginAtual);

            var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfil);

            if (permissionamentos == null || !permissionamentos.Any())
            {
                throw new NegocioException($"Não foi possível obter os permissionamentos do perfil selecionado");
            }
            else
            {
                var listaPermissoes = permissionamentos
                                      .Distinct()
                                      .Select(a => (Permissao)a)
                                      .ToList();

                await servicoAbrangencia.Salvar(loginAtual, perfil, false);

                var usuario = await servicoUsuario.ObterUsuarioLogado();

                usuario.DefinirPerfilAtual(perfil);

                //await servicoTokenJwt.RevogarToken(loginAtual);
                var tokenStr = servicoTokenJwt.GerarToken(loginAtual, nomeLoginAtual, codigoRfAtual, perfil, listaPermissoes);

                return(new TrocaPerfilDto
                {
                    Token = tokenStr,
                    DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(),
                    EhProfessor = usuario.EhProfessor(),
                    EhProfessorCj = usuario.EhProfessorCj(),
                    EhProfessorPoa = usuario.EhProfessorPoa(),
                    EhProfessorInfantil = usuario.EhProfessorInfantil(),
                    EhProfessorCjInfantil = usuario.EhProfessorCjInfantil(),
                    EhPerfilProfessor = usuario.EhPerfilProfessor()
                });
            }
        }