public async Task<ActionResult> Perfil() { EditarUsuario editar = new EditarUsuario(); var user = await UserManager.FindByNameAsync(User.Identity.Name); StringHash texto = new StringHash(); editar.id = user.Id; editar.apellido1 = user.apellido1; editar.apellido2 = user.apellido2; editar.nombre = user.nombre; editar.perfil = user.perfil; editar.telefono = user.telefono; editar.email = user.email; editar.UserName = user.UserName; editar.cod_secreto = texto.Decrypt(user.cod_secreto,true,editar.UserName); return View(editar); }
public async Task<ActionResult> Editar(EditarUsuario model) { if (ModelState.IsValid) { var user = await UserManager.FindByIdAsync(model.id); user.nombre = model.nombre; user.apellido1 = model.apellido1; user.apellido2 = model.apellido2; user.telefono = model.telefono; user.email = model.email; user.UserName = model.UserName; var result = await UserManager.UpdateAsync(user); if (result.Succeeded) { ApplicationDbContext dba = new ApplicationDbContext(); Conexion db = new Conexion(); List<IdentityUserRole> lista_roles_usu = dba.User_Role.Where(m => m.UserId == user.Id).ToList(); dba.User_Role.RemoveRange(lista_roles_usu); dba.SaveChanges(); List<UsuariosGrupo> grupoUR = db.UsuariosGrupo.Where(m => m.idusuario == user.Id).ToList(); db.UsuariosGrupo.RemoveRange(grupoUR); db.SaveChanges(); grupoUR.Clear(); try { foreach (var role in model.rol) { UsuariosGrupo inGrupo = new UsuariosGrupo(); inGrupo.idgrupousuario = role; inGrupo.idusuario = user.Id; grupoUR.Add(inGrupo); List<GrupoU_Roles> listaRoles = db.GrupoU_Roles.Where(m=>m.idgrupo== role).ToList(); foreach (var intro in listaRoles) { var roless = db.Roles.FirstOrDefault(m=>m.Id == intro.idrol); var isInRole = await UserManager.IsInRoleAsync(user.Id, roless.Name); if (!isInRole) { await UserManager.AddToRoleAsync(user.Id, roless.Name); } } } db.UsuariosGrupo.AddRange(grupoUR); db.SaveChanges(); } catch (Exception e) { } Historial nuevo = new Historial("Modificó", User.Identity.GetUserId(), "usuario", user.Id, user.UserName, Request.UserHostAddress); TempData["Mensaje"] = "Datos del Usuario modificados correctamente."; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Editar", "Acceso", new {id= user.Id }); } else { AddErrors(result); } } //Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario. return View(model); }
// // GET: /Acceso/Editar public ActionResult Editar(string id) { EditarUsuario editar = new EditarUsuario(UserManager,id); editar.selectZonas = UsuariosZonas.selectAll(id); return View(editar); }