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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        //
        // GET: /Acceso/Editar 
        public ActionResult Editar(string id)
        {

            EditarUsuario editar = new EditarUsuario(UserManager,id);
            editar.selectZonas = UsuariosZonas.selectAll(id);

            return View(editar);
        }