public async Task <IActionResult> AtribuirDireito(AtribuirDireitoViewModel modelo) { if (ModelState.IsValid & modelo != null) { var usuario = await _userManager.FindByEmailAsync(modelo.Email).ConfigureAwait(false); var remover = modelo.RolesDeAcesso.Where(ro => ro.Ativa == false).Select(ro => ro.NomeRoles); var add = modelo.RolesDeAcesso.Where(ro => ro.Ativa == true).Select(ro => ro.NomeRoles); if (remover.Count() > 0) { foreach (var item in remover) { await _userManager.RemoveFromRoleAsync(usuario, item).ConfigureAwait(false); } } if (add.Count() > 0) { foreach (var item in add) { await _userManager.AddToRoleAsync(usuario, item).ConfigureAwait(false); } } ViewData["MsgReposta"] = 1; return(View()); } ModelState.AddModelError("", _localizador["Ocorreu um erro, tente novamente ou acesso mais tarde"]); return(View(modelo)); }
public AtribuirDireitoViewModel BuscarDadosUsuario(string email, IList <RolesUsarioViewModel> listaPermissoes) { AtribuirDireitoViewModel modelo = new AtribuirDireitoViewModel(); var userSimples = contexto.Users.Where(usu => usu.Email == email).FirstOrDefault(); modelo.UserId = userSimples.Id; modelo.Nome = userSimples.Nome; modelo.Email = userSimples.Email; modelo.DataDeCadastro = userSimples.DataCadastro; var rolesUsuario = from role in contexto.Roles join roleUse in contexto.UserRoles on role.Id equals roleUse.RoleId where roleUse.UserId == userSimples.Id & role.NormalizedName != PerfisPadroes.USUARIO select role.NormalizedName; modelo.RolesDeAcesso = listaPermissoes; foreach (var item in modelo.RolesDeAcesso) { if (rolesUsuario.Contains(item.NomeRoles)) { item.Ativa = true; } } return(modelo); }
public IActionResult AtribuirDireito(UsuarioEmailViewModel modelo) { if (ModelState.IsValid & modelo != null) { IList <RolesUsarioViewModel> listaPermissoes = new List <RolesUsarioViewModel> { new RolesUsarioViewModel() { NomeRoles = PerfisPadroes.ADMINISTRADOR, Ativa = false, Descricao = _localizador["Acesso Administrativo"].ToString() }, new RolesUsarioViewModel() { NomeRoles = PerfisPadroes.CRIARCATEGORIA, Ativa = false, Descricao = _localizador["Manutenção de Caracteríticas"].ToString() }, new RolesUsarioViewModel() { NomeRoles = PerfisPadroes.CRIARTEMPLETE, Ativa = false, Descricao = _localizador["Manutençao de modelo de Experimento"].ToString() } }; AtribuirDireitoViewModel modeloRetorno = _repoAdmin.BuscarDadosUsuario(modelo.Email, listaPermissoes); return(View(modeloRetorno)); } return(RedirectToAction(nameof(Direitos))); }