Fix handling of user preference updates where no email address is supplied

mb-throttle-test
BlueWall 2014-11-23 14:25:48 -05:00
parent 7813780eba
commit 12108bf6e9
5 changed files with 36 additions and 27 deletions

View File

@ -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;
}

View File

@ -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)

View File

@ -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
{

View File

@ -47,7 +47,6 @@ namespace OpenSim.Services.ProfilesService
MethodBase.GetCurrentMethod().DeclaringType);
IUserAccountService userAccounts;
IAuthenticationService authService;
public UserProfilesService(IConfigSource config, string configName):
base(config, configName)
@ -55,7 +54,7 @@ namespace OpenSim.Services.ProfilesService
IConfig Config = config.Configs[configName];
if (Config == null)
{
m_log.Warn("[PROFILES]: No configuration found!");
m_log.Warn("[PROFILES SERVICE]: No configuration found!");
return;
}
Object[] args = null;
@ -66,9 +65,6 @@ namespace OpenSim.Services.ProfilesService
userAccounts = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args);
args = new Object[] { config };
string authServiceConfig = Config.GetString("AuthenticationServiceModule", String.Empty);
if (accountService != string.Empty)
authService = ServerUtils.LoadPlugin<IAuthenticationService>(authServiceConfig, args);
}
#region Classifieds
@ -176,23 +172,22 @@ namespace OpenSim.Services.ProfilesService
account = userAccounts.GetUserAccount(UUID.Zero, pref.UserId);
if(string.IsNullOrEmpty(account.Email))
{
result = "No Email address on record!";
return false;
pref.EMail = string.Empty;
}
else
pref.EMail = account.Email;
}
catch
{
m_log.Info ("[PROFILES]: UserAccountService Exception: Could not get user account");
result = "Missing Email address!";
m_log.Error ("[PROFILES SERVICE]: UserAccountService Exception: Could not get user account");
result = "UserAccountService settings error in UserProfileService!";
return false;
}
}
else
{
m_log.Info ("[PROFILES]: UserAccountService: Could not get user account");
result = "Missing Email address!";
m_log.Error ("[PROFILES SERVICE]: UserAccountService: Could not get user account");
result = "UserAccountService settings error in UserProfileService!";
return false;
}
}
@ -211,23 +206,22 @@ namespace OpenSim.Services.ProfilesService
account = userAccounts.GetUserAccount(UUID.Zero, pref.UserId);
if(string.IsNullOrEmpty(account.Email))
{
result = "No Email address on record!";
return false;
pref.EMail = string.Empty;
}
else
pref.EMail = account.Email;
}
catch
{
m_log.Info ("[PROFILES]: UserAccountService Exception: Could not get user account");
result = "Missing Email address!";
m_log.Error ("[PROFILES SERVICE]: UserAccountService Exception: Could not get user account");
result = "UserAccountService settings error in UserProfileService!";
return false;
}
}
else
{
m_log.Info ("[PROFILES]: UserAccountService: Could not get user account");
result = "Missing Email address!";
m_log.Error ("[PROFILES SERVICE]: UserAccountService: Could not get user account");
result = "UserAccountService settings error in UserProfileService!";
return false;
}
}

View File

@ -52,7 +52,7 @@ namespace OpenSim.Services.ProfilesService
{
if(string.IsNullOrEmpty(configName))
{
m_log.WarnFormat("[PROFILES]: Configuration section not given!");
m_log.WarnFormat("[PROFILES SERVICE]: Configuration section not given!");
return;
}