/// <summary> /// Guarda los cambios del modelo. /// </summary> /// <param name="user"></param> /// <returns></returns> public bool Edit(User user) { UserMapper mapper = new UserMapper(); if (!IsValidForEdit(user)) { return(false); } user.Lastupdate = DateTime.Now; //Deberían ser opciones que el administrador pudiera seleccionar //user.Locked = true; //user.Active = false; if (!mapper.Edit(user)) { string errorDescription = "Las modifiaciones no se han podido guardar."; log.AddLogWarn("Edit", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } return(true); }
public bool ActivateAccount(string hash) { if (!IsValidHash(hash)) { return(false); } string activation = hash.Substring(0, 32); int userId = int.Parse(hash.Substring(32, hash.Length - 32)); UserMapper userMapper = new UserMapper(); User user = userMapper.Get(userId); if (user == null) { // Siempre se devuelve true para ofuscar string errorDescription = "¡Parece que estamos teniendo inconvenientes con el sistema!"; log.AddLogCritical("ActivateAccount", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } if (SecurityHelper.IsEquivalent(user.Mail + user.Lastupdate.Minute, activation)) { //activo! user.Locked = false; user.Active = true; user.Lastupdate = DateTime.Now; if (!userMapper.Edit(user)) { // Siempre se devuelve true para ofuscar string errorDescription = "Quizá quieras solicitar la contraseña de nuevo... el sistema no está actualmente disponible (solo es momentáneo!)"; log.AddLogCritical("ActivateAccount", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } return(true); } else { // Siempre se devuelve true para ofuscar // bería mostrar el formulario? cuando? string errorDescription = "Excelente! gracias por recuperar tu password :D"; log.AddLogWarn("Edit", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(true); } }