public ActionResult Leer([DataSourceRequest] DataSourceRequest request, long?aplicacionID = null) { IUsuariosServicio srv = Servicios.UsuariosServicio(); IEnumerable <UsuarioGrid> usuarios = srv.Get().Select(emp => UsuarioGrid.FromEntity(emp)); return(Json(usuarios.ToDataSourceResult(request), JsonRequestBehavior.AllowGet)); }
public ActionResult ListaUsuarios() { IUsuariosServicio srv = Servicios.UsuariosServicio(); IEnumerable <SelectListItem> usuarios = srv.Get() .Where(e => e.Aplicaciones.Any(cl => cl.AplicacionID == Aplicacion.AplicacionID)) .Select(e => new SelectListItem() { Value = e.UsuarioID.ToString(), Text = e.ApellidosNombre }); return(Json(usuarios, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Nuevo([DataSourceRequest] DataSourceRequest request, UsuarioGrid usuario) { DataSourceResult result = new[] { usuario }.ToDataSourceResult(request, ModelState); if (ModelState.IsValid) { bool usuarioActualizado = false; try { IAplicacionesServicio apSrv = Servicios.AplicacionesServicio(); ICategoriasServicio carSrv = Servicios.CategoriasServicio(); IUsuariosServicio empSrv = Servicios.UsuariosServicio(); Usuario usuarioNuevo = empSrv.Create(); usuario.ActualizarEntidad(usuarioNuevo); usuarioNuevo.Aplicaciones = apSrv.Get(cl => usuario.Aplicaciones.Contains(cl.AplicacionID)).ToList(); IdentityResult ir = await UserManager.CreateAsync(usuarioNuevo, usuario.Clave); if (ir.Succeeded) { result = new[] { UsuarioGrid.FromEntity(usuarioNuevo) }.ToDataSourceResult(request, ModelState); usuarioActualizado = true; await UserManager.EstablecerRol(usuarioNuevo, usuario.PerfilID); result = new[] { UsuarioGrid.FromEntity(usuarioNuevo) }.ToDataSourceResult(request, ModelState); } else { foreach (var error in ir.Errors) { ModelState.AddModelError("", error); } result = new[] { usuario }.ToDataSourceResult(request, ModelState); } } catch (Exception e) { if (usuarioActualizado) { log.Error($"Error al establecer perfiles del usuario creado {usuario.Email}", e); result.Errors = new[] { string.Format(Txt.Usuarios.ErrorEstablecerPerfiles, usuario.Email).Frase() }; } else { log.Error("Error al añadir el usuario " + usuario.Nombre, e); result.Errors = new[] { string.Format(Txt.ErroresComunes.Aniadir, Txt.Usuarios.ArtEntidad).Frase() }; } } } return(Json(result)); }
public static IEnumerable <ElementoMenu> GenerarMenu(long usuarioID, Aplicacion aplicacion) { IPushNewsUnitOfWork uow = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>(); var servicios = new ServiciosFactoria(uow, aplicacion); IAplicacionesServicio appSrv = servicios.AplicacionesServicio(); Aplicacion app = appSrv.GetSingle(a => a.AplicacionID == aplicacion.AplicacionID); IUsuariosServicio srv = servicios.UsuariosServicio(); // Flags para ocultar categorías, teléfonos y localizaciones en el menú. // Los tres elementos se mostrarán siempre si el usuario es administrador, independientemente de // si tiene o no tiene categorías asignadas. // Si el usuario no es administrador, los tres elementos se mostrarán si no tiene ninguna // categoría asignada en la aplicación acutal. Si tiene al menos una categoría asignada en la // aplicación acutal, los tres elementos se ocultan. IUsuariosServicio usuariosServicio = servicios.UsuariosServicio(); Usuario usuario = usuariosServicio.GetSingle(u => u.UsuarioID == usuarioID); bool usuarioEsAdmin = usuario.Rol.Nombre == "Administrador"; bool ocultarCategorias = false; bool ocultarTelefonos = false; bool ocultarLocalizaciones = false; IEnumerable <Dominio.Enums.AplicacionCaracteristica> caracteristicas = app.Caracteristicas .Where(c => c.Activo) .Select(c => (Dominio.Enums.AplicacionCaracteristica)c.AplicacionCaracteristicaID); List <ElementoMenu> menuCompleto = Elementos(caracteristicas, ocultarCategorias, ocultarTelefonos, ocultarLocalizaciones); var menuFiltrado = new List <ElementoMenu>(); if (usuarioEsAdmin) { menuFiltrado = menuCompleto; } else { foreach (var eActual in menuCompleto) { if (eActual.Roles.Any(r => r.Length == 0 || usuario.Rol.Nombre == r)) { if (eActual.TieneHijos) { QuitarHijos(eActual, new[] { "Editor" }); } menuFiltrado.Add(eActual); } } } return(menuFiltrado); }
public ActionResult Index() { IUsuariosServicio srv = Servicios.UsuariosServicio(); long userID = CurrentUserID(); Usuario usr = srv.GetSingle(u => u.UsuarioID == userID); List <SelectListItem> apps = usr.Aplicaciones .Select(a => new SelectListItem { Value = a.AplicacionID.ToString(), Text = a.Nombre }) .ToList(); apps.Insert(0, new SelectListItem { Value = "0", Text = Txt.Comun.Ninguna }); ViewBag.Aplicaciones = apps; return(PartialView("Parametros")); }
public async Task <ActionResult> Modificar([DataSourceRequest] DataSourceRequest request, UsuarioGrid usuario) { DataSourceResult result = new[] { usuario }.ToDataSourceResult(request, ModelState); if (ModelState.IsValid) { bool usuarioActualizado = false; try { IUsuariosServicio srv = Servicios.UsuariosServicio(); Usuario modificar = srv.GetSingle(u => u.UsuarioID == usuario.UsuarioID); if (modificar != null) { if (usuario.Aplicaciones == null) { usuario.Aplicaciones = new long[0]; } usuario.ActualizarEntidad(modificar); IEnumerable <long> aplicacionesActuales = modificar.Aplicaciones.Select(cl => cl.AplicacionID); IEnumerable <long> aplicacionesAniadirIDs = usuario.Aplicaciones.Where(cl => !aplicacionesActuales.Contains(cl)); IEnumerable <long> aplicacionesEliminar = aplicacionesActuales .Where(e => !usuario.Aplicaciones.Contains(e)).ToArray(); foreach (var e in aplicacionesEliminar) { Aplicacion aEliminar = modificar.Aplicaciones .Single(eID => eID.AplicacionID == e); modificar.Aplicaciones.Remove(aEliminar); } // Añadir las aplicaciones que vengan en el array de ids de aplicaciones y que no // tenga ya el usuario. IAplicacionesServicio srvAplicacions = Servicios.AplicacionesServicio(); modificar.Aplicaciones .AddRange(srvAplicacions.Get(cl => aplicacionesAniadirIDs.Contains(cl.AplicacionID))); IdentityResult ir = await UserManager.UpdateAsync(modificar); if (ir.Succeeded) { usuarioActualizado = true; await UserManager.EstablecerRol(modificar, usuario.PerfilID); result = new[] { UsuarioGrid.FromEntity(modificar) }.ToDataSourceResult(request, ModelState); } else { foreach (var error in ir.Errors) { ModelState.AddModelError("", error); } result = new[] { usuario }.ToDataSourceResult(request, ModelState); } } else { result.Errors = new[] { string.Format(Txt.ErroresComunes.NoExiste, Txt.Usuarios.ArtEntidad).Frase() }; } } catch (Exception e) { if (usuarioActualizado) { log.Error($"Error al establecer perfiles del usuario creado {usuario.Email}", e); result.Errors = new[] { string.Format(Txt.Usuarios.ErrorEstablecerPerfiles, usuario.Email).Frase() }; } else { log.Error("Error al modificar el usuario con id=" + usuario.UsuarioID, e); result.Errors = new[] { string.Format(Txt.ErroresComunes.Modificar, Txt.Usuarios.ArtEntidad).Frase() }; } } } return(Json(result)); }