public async Task <ActionResult> SeleccionarModulo(string codigoModulo) { int?usuarioId = ManejadorSessionAcceso.getSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion) as int?; if (usuarioId.HasValue && usuarioId.Value > 0 && !string.IsNullOrWhiteSpace(codigoModulo)) { //Verificar q la cuenta no este asignada a otro usuario var usuario = await usuarioService.Get(new EntityDto <int>(usuarioId.Value)); if (usuario != null) { // El usuario tiene el modulo asociado var modulo = usuario.Modulos.Where(c => c.Codigo == codigoModulo).SingleOrDefault(); if (modulo == null) { string error = string.Format("El usuario {0}, no tiene asociado el modulo con el codigo {1}", usuario.Cuenta, codigoModulo); throw new GenericException(error, error); } return(await AutentificarUsuario(usuario, modulo)); } Log.InfoFormat("El usuario con Identificador {0}, no existe", usuarioId.Value); } return(RedirectToAction("Ingreso", new { msg = "El usuario o el módulo seleccionado no esta asociado" })); }
public async Task <ActionResult> SeleccionarModulo() { int?usuarioId = ManejadorSessionAcceso.getSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion) as int?; if (usuarioId.HasValue && usuarioId.Value > 0) { var usuario = await usuarioService.Get(new EntityDto <int>(usuarioId.Value)); return(View(usuario)); } return(RedirectToAction("Ingreso", new { msg = "Ingrese sus credenciales" })); }
public async Task <ActionResult> CambiarClave() { int?usuarioId = ManejadorSessionAcceso.getSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion) as int?; if (usuarioId.HasValue && usuarioId.Value > 0) { var usuario = await usuarioService.Get(new EntityDto <int>(usuarioId.Value)); if (usuario != null) { var model = new NuevaClaveViewModel(); model.NombreUsuario = usuario.NombresCompletos(); return(View(model)); } } return(RedirectToAction("Ingreso", new { msg = "Ingrese sus credenciales" })); }
public async Task <ActionResult> CambiarClave(NuevaClaveViewModel model) { try { if (ModelState.IsValid) { int?usuarioId = ManejadorSessionAcceso.getSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion) as int?; if (usuarioId.HasValue && usuarioId.Value > 0) { //Cambiar Clave var loginResult = await LoginManager.ChangePasswordAsync(usuarioId.Value, model.Password); if (loginResult.Result == LoginResultType.SucessAuthentication) { var usuario = loginResult.User; //Si unicamente existe un modulo if (usuario.Modulos.Count == 1) { var moduloDefault = usuario.Modulos.FirstOrDefault(); var mensaje = string.Format("El usuario {0} ingresa por defecto con el codigo de modulo {1} , fecha y hora: {2}", usuario, moduloDefault.Codigo , Application.getDateTime()); return(await AutentificarUsuario(usuario, moduloDefault)); } else if (usuario.Modulos.Count > 1) { Log.InfoFormat(string.Format("El usuario [{0}], posee varios modulos ", loginResult.User.Cuenta)); //Guardar en sesion, la cuenta que ya sido autentificada ManejadorSessionAcceso.setSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion, usuario.Id); return(RedirectToAction("SeleccionarModulo")); } else if (usuario.Modulos.Count == 0) { Log.ErrorFormat("Sistema. El usuario no posee modulos asociadas"); ModelState.AddModelError(string.Empty, "El usuario no posee modulos asociadas"); } } ModelState.AddModelError("", loginResult.Result.ToString()); } else { return(RedirectToAction("Ingreso", new { msg = "Ingrese sus credenciales" })); } } } catch (Exception ex) { var result = ManejadorExcepciones.HandleException(ex); Log.ErrorFormat(result.Message); ModelState.AddModelError("", result.Message); } return(View(model)); }