From 019d6626068920283b700440e780c86c162ca7c6 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 15 Dec 2007 21:58:07 +0000 Subject: Put out a more comprehensible message when user authentication fails than the current NullReferenceException based one --- .../Framework/Communications/UserManagerBase.cs | 63 +++++++--------------- OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs | 16 +----- OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 23 +------- OpenSim/Framework/Data.SQLite/SQLiteUserData.cs | 23 +------- OpenSim/Framework/IUserData.cs | 11 +--- OpenSim/Framework/IUserService.cs | 2 +- .../Communications/Local/LocalLoginService.cs | 12 +++-- 7 files changed, 36 insertions(+), 114 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 0e5e782..a82a58d 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs @@ -37,6 +37,9 @@ using OpenSim.Framework.Console; namespace OpenSim.Framework.UserManagement { + /// + /// Base class for user management (create, read, etc) + /// public abstract class UserManagerBase : IUserService { public UserConfig _config; @@ -84,22 +87,23 @@ namespace OpenSim.Framework.UserManagement /// Loads a user profile from a database by UUID /// /// The target UUID - /// A user profile + /// A user profile. Returns null if no user profile is found. public UserProfileData GetUserProfile(LLUUID uuid) { foreach (KeyValuePair plugin in _plugins) { - try + UserProfileData profile = plugin.Value.GetUserByUUID(uuid); + + if (null != profile) { - UserProfileData profile = plugin.Value.GetUserByUUID(uuid); profile.currentAgent = getUserAgent(profile.UUID); return profile; - } - catch (Exception e) - { - MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); - } + } } + + MainLog.Instance.Notice( + "USERSTORAGE", + "Could not find user " + uuid.ToStringHyphenated() + " in persistent storage."); return null; } @@ -123,55 +127,28 @@ namespace OpenSim.Framework.UserManagement return pickerlist; } - - /// - /// Loads a user profile by name - /// - /// The target name - /// A user profile - public UserProfileData GetUserProfile(string name) - { - foreach (KeyValuePair plugin in _plugins) - { - try - { - UserProfileData profile = plugin.Value.GetUserByName(name); - profile.currentAgent = getUserAgent(profile.UUID); - return profile; - } - catch (Exception e) - { - MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); - } - } - - return null; - } - /// /// Loads a user profile by name /// /// First name /// Last name - /// A user profile + /// A user profile. Returns null if no profile is found public UserProfileData GetUserProfile(string fname, string lname) { foreach (KeyValuePair plugin in _plugins) { - try - { - UserProfileData profile = plugin.Value.GetUserByName(fname, lname); + UserProfileData profile = plugin.Value.GetUserByName(fname, lname); + if (profile != null) + { profile.currentAgent = getUserAgent(profile.UUID); - return profile; } - catch (Exception e) - { - MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); - } } - + + MainLog.Instance.Notice( + "USERSTORAGE", "Could not find user " + fname + " " + lname + " in persistent storage."); + return null; } diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs index c235e96..80b65c1 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs @@ -62,16 +62,6 @@ namespace OpenSim.Framework.Data.MSSQL } /// - /// Searches the database for a specified user profile - /// - /// The account name of the user - /// A user profile - public UserProfileData GetUserByName(string name) - { - return GetUserByName(name.Split(' ')[0], name.Split(' ')[1]); - } - - /// /// Searches the database for a specified user profile by name components /// /// The first part of the account name @@ -188,11 +178,7 @@ namespace OpenSim.Framework.Data.MSSQL return returnlist; } - /// - /// Searches the database for a specified user profile by UUID - /// - /// The account ID - /// The users profile + // See IUserData public UserProfileData GetUserByUUID(LLUUID uuid) { try diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs index e5cbe45..6a7cf49 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs @@ -113,23 +113,8 @@ namespace OpenSim.Framework.Data.MySQL } #endregion - - /// - /// Searches the database for a specified user profile - /// - /// The account name of the user - /// A user profile - public UserProfileData GetUserByName(string name) - { - return GetUserByName(name.Split(' ')[0], name.Split(' ')[1]); - } - /// - /// Searches the database for a specified user profile by name components - /// - /// The first part of the account name - /// The second part of the account name - /// A user profile + // see IUserData public UserProfileData GetUserByName(string user, string last) { try @@ -244,11 +229,7 @@ namespace OpenSim.Framework.Data.MySQL return returnlist; } - /// - /// Searches the database for a specified user profile by UUID - /// - /// The account ID - /// The users profile + // see IUserData public UserProfileData GetUserByUUID(LLUUID uuid) { try diff --git a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs index da27277..346febc 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs @@ -72,11 +72,7 @@ namespace OpenSim.Framework.Data.SQLite return; } - /// - /// Loads a specified user profile from a UUID - /// - /// The user's UUID - /// A user profile + // see IUserData public UserProfileData GetUserByUUID(LLUUID uuid) { lock (ds) @@ -99,22 +95,7 @@ namespace OpenSim.Framework.Data.SQLite } } - /// - /// Returns a user by searching for its name - /// - /// The user's account name - /// A matching user profile - public UserProfileData GetUserByName(string name) - { - return GetUserByName(name.Split(' ')[0], name.Split(' ')[1]); - } - - /// - /// Returns a user by searching for its name - /// - /// The first part of the user's account name - /// The second part of the user's account name - /// A matching user profile + // see IUserData public UserProfileData GetUserByName(string fname, string lname) { string select = "surname = '" + lname + "' and username = '" + fname + "'"; diff --git a/OpenSim/Framework/IUserData.cs b/OpenSim/Framework/IUserData.cs index a32bf6c..0679a68 100644 --- a/OpenSim/Framework/IUserData.cs +++ b/OpenSim/Framework/IUserData.cs @@ -38,18 +38,11 @@ namespace OpenSim.Framework /// /// Returns a user profile from a database via their UUID /// - /// The accounts UUID - /// The user data profile + /// The user's UUID + /// The user data profile. Returns null if no user is found UserProfileData GetUserByUUID(LLUUID user); /// - /// Returns a users profile by searching their username - /// - /// The users username - /// The user data profile - UserProfileData GetUserByName(string name); - - /// /// Returns a users profile by searching their username parts /// /// Account firstname diff --git a/OpenSim/Framework/IUserService.cs b/OpenSim/Framework/IUserService.cs index 298bde5..3440e30 100644 --- a/OpenSim/Framework/IUserService.cs +++ b/OpenSim/Framework/IUserService.cs @@ -33,7 +33,7 @@ namespace OpenSim.Framework public interface IUserService { UserProfileData GetUserProfile(string firstName, string lastName); - UserProfileData GetUserProfile(string name); + //UserProfileData GetUserProfile(string name); UserProfileData GetUserProfile(LLUUID userId); void clearUserAgent(LLUUID avatarID); List GenerateAgentPickerRequestResponse(LLUUID QueryID, string Query); diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs index 103c76f..37cea1f 100644 --- a/OpenSim/Region/Communications/Local/LocalLoginService.cs +++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs @@ -31,6 +31,7 @@ using System.Collections; using System.Collections.Generic; using libsecondlife; using OpenSim.Framework; +using OpenSim.Framework.Console; using OpenSim.Framework.UserManagement; using InventoryFolder=OpenSim.Framework.InventoryFolder; @@ -72,7 +73,8 @@ namespace OpenSim.Region.Communications.Local if (!authUsers) { //no current user account so make one - Console.WriteLine("No User account found so creating a new one "); + MainLog.Instance.Notice("LOGIN", "No user account found so creating a new one."); + m_userManager.AddUserProfile(firstname, lastname, "test", defaultHomeX, defaultHomeY); profile = m_userManager.GetUserProfile(firstname, lastname); @@ -91,12 +93,14 @@ namespace OpenSim.Region.Communications.Local if (!authUsers) { //for now we will accept any password in sandbox mode - Console.WriteLine("authorising user"); + MainLog.Instance.Notice("LOGIN", "Authorising user (no actual password check)"); + return true; } else { - Console.WriteLine("Authenticating " + profile.username + " " + profile.surname); + MainLog.Instance.Notice( + "LOGIN", "Authenticating " + profile.username + " " + profile.surname); password = password.Remove(0, 3); //remove $1$ @@ -153,7 +157,7 @@ namespace OpenSim.Region.Communications.Local } else { - Console.WriteLine("not found region " + currentRegion); + MainLog.Instance.Warn("LOGIN", "Not found region " + currentRegion); } } -- cgit v1.1