From 12108bf6e9dc16b6b4b1fe344c1b12ed31a1e4b4 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Sun, 23 Nov 2014 14:25:48 -0500 Subject: Fix handling of user preference updates where no email address is supplied --- OpenSim/Data/MySQL/MySQLUserProfilesData.cs | 13 +++++++++---- OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs | 11 ++++++++--- OpenSim/Data/SQLite/SQLiteUserProfilesData.cs | 9 +++++++-- 3 files changed, 24 insertions(+), 9 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MySQL/MySQLUserProfilesData.cs b/OpenSim/Data/MySQL/MySQLUserProfilesData.cs index cab0ca8..da05ff0 100644 --- a/OpenSim/Data/MySQL/MySQLUserProfilesData.cs +++ b/OpenSim/Data/MySQL/MySQLUserProfilesData.cs @@ -915,7 +915,10 @@ namespace OpenSim.Data.MySQL reader.Read(); bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); bool.TryParse((string)reader["visible"], out pref.Visible); - pref.EMail = (string)reader["email"]; + pref.EMail = (string)reader["email"]; + + if(string.IsNullOrEmpty(pref.EMail)) + pref.EMail = "No EMail Address Provided"; } else { @@ -954,7 +957,8 @@ namespace OpenSim.Data.MySQL query += "UPDATE usersettings SET "; query += "imviaemail=?ImViaEmail, "; - query += "visible=?Visible "; + query += "visible=?Visible, "; + query += "email=?EMail "; query += "WHERE useruuid=?uuid"; try @@ -966,7 +970,8 @@ namespace OpenSim.Data.MySQL { cmd.Parameters.AddWithValue("?ImViaEmail", pref.IMViaEmail.ToString().ToLower()); cmd.Parameters.AddWithValue("?Visible", pref.Visible.ToString().ToLower()); - cmd.Parameters.AddWithValue("?uuid", pref.UserId.ToString()); + cmd.Parameters.AddWithValue("?uuid", pref.UserId.ToString()); + cmd.Parameters.AddWithValue("?EMail", pref.EMail.ToString().ToLower()); cmd.ExecuteNonQuery(); } @@ -975,7 +980,7 @@ namespace OpenSim.Data.MySQL catch (Exception e) { m_log.ErrorFormat("[PROFILES_DATA]" + - ": AgentInterestsUpdate exception {0}", e.Message); + ": UserPreferencesUpdate exception {0} {1}", e.Message, e.InnerException); result = e.Message; return false; } diff --git a/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs b/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs index 4a08100..e263857 100644 --- a/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs +++ b/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs @@ -901,7 +901,10 @@ namespace OpenSim.Data.PGSQL reader.Read(); bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); bool.TryParse((string)reader["visible"], out pref.Visible); - pref.EMail = (string)reader["email"]; + pref.EMail = (string)reader["email"]; + + if(string.IsNullOrEmpty(pref.EMail)) + pref.EMail = "No EMail Address Provided"; } else { @@ -935,7 +938,8 @@ namespace OpenSim.Data.PGSQL query += "UPDATE usersettings SET "; query += "imviaemail=:ImViaEmail, "; - query += "visible=:Visible,"; + query += "visible=:Visible, "; + query += "email=:Email "; query += "WHERE useruuid=:uuid"; try @@ -946,7 +950,8 @@ namespace OpenSim.Data.PGSQL using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) { cmd.Parameters.Add(m_database.CreateParameter("ImViaEmail", pref.IMViaEmail.ToString().ToLower ())); - cmd.Parameters.Add(m_database.CreateParameter("Visible", pref.Visible.ToString().ToLower ())); + cmd.Parameters.Add(m_database.CreateParameter("Visible", pref.Visible.ToString().ToLower ())); + cmd.Parameters.Add(m_database.CreateParameter("EMail", pref.EMail.ToString().ToLower ())); cmd.Parameters.Add(m_database.CreateParameter("uuid", pref.UserId.ToString())); lock(Lock) diff --git a/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs b/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs index 7bf3bd5..fd6a1c5 100644 --- a/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs @@ -747,7 +747,8 @@ namespace OpenSim.Data.SQLite query += "UPDATE usersettings SET "; query += "imviaemail=:ImViaEmail, "; - query += "visible=:Visible "; + query += "visible=:Visible, "; + query += "email=:EMail "; query += "WHERE useruuid=:uuid"; try @@ -757,6 +758,7 @@ namespace OpenSim.Data.SQLite cmd.CommandText = query; cmd.Parameters.AddWithValue(":ImViaEmail", pref.IMViaEmail); cmd.Parameters.AddWithValue(":Visible", pref.Visible); + cmd.Parameters.AddWithValue(":EMail", pref.EMail); cmd.Parameters.AddWithValue(":uuid", pref.UserId.ToString()); cmd.ExecuteNonQuery(); @@ -796,7 +798,10 @@ namespace OpenSim.Data.SQLite { bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); bool.TryParse((string)reader["visible"], out pref.Visible); - pref.EMail = (string)reader["email"]; + pref.EMail = (string)reader["email"]; + + if(string.IsNullOrEmpty(pref.EMail)) + pref.EMail = "No EMail Address Provided"; } else { -- cgit v1.1