From d3eae4073e75d1482467eee54230df141bdbb568 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Tue, 3 Feb 2009 05:20:35 +0000 Subject: - move OpenSim/Framework/IUserData.cs to OpenSim/Data/IUserData.cs - trim trailing whitespace --- OpenSim/Data/IUserData.cs | 193 +++++++++++++++++++++ .../Framework/Communications/UserManagerBase.cs | 60 +++---- OpenSim/Framework/IUserData.cs | 192 -------------------- OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs | 3 +- bin/OpenSim.Data.addin.xml | 2 +- 5 files changed, 226 insertions(+), 224 deletions(-) create mode 100644 OpenSim/Data/IUserData.cs delete mode 100644 OpenSim/Framework/IUserData.cs diff --git a/OpenSim/Data/IUserData.cs b/OpenSim/Data/IUserData.cs new file mode 100644 index 0000000..1564033 --- /dev/null +++ b/OpenSim/Data/IUserData.cs @@ -0,0 +1,193 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Collections.Generic; +using OpenMetaverse; +using OpenSim.Framework; + +namespace OpenSim.Data +{ + /// + /// An interface for connecting to user storage servers. + /// + public interface IUserDataPlugin : IPlugin + { + /// + /// Returns a user profile from a database via their UUID + /// + /// The user's UUID + /// The user data profile. Returns null if no user is found + UserProfileData GetUserByUUID(UUID user); + + /// + /// Returns a users profile by searching their username parts + /// + /// Account firstname + /// Account lastname + /// The user data profile + UserProfileData GetUserByName(string fname, string lname); + + /// + /// Returns a list of UUIDs firstnames and lastnames that match string query entered into the avatar picker. + /// + /// ID associated with the user's query. This must match what the client sent + /// The filtered contents of the search box when the user hit search. + /// The user data profile + List GeneratePickerResults(UUID queryID, string query); + + /// + /// Returns the current agent for a user searching by it's UUID + /// + /// The users UUID + /// The current agent session + UserAgentData GetAgentByUUID(UUID user); + + /// + /// Returns the current session agent for a user searching by username + /// + /// The users account name + /// The current agent session + UserAgentData GetAgentByName(string name); + + /// + /// Returns the current session agent for a user searching by username parts + /// + /// The users first account name + /// The users account surname + /// The current agent session + UserAgentData GetAgentByName(string fname, string lname); + + /// + /// Stores new web-login key for user during web page login + /// + /// + void StoreWebLoginKey(UUID agentID, UUID webLoginKey); + + /// + /// Adds a new User profile to the database + /// + /// UserProfile to add + void AddNewUserProfile(UserProfileData user); + + /// + /// Updates an existing user profile + /// + /// UserProfile to update + bool UpdateUserProfile(UserProfileData user); + + /// + /// Adds a new agent to the database + /// + /// The agent to add + void AddNewUserAgent(UserAgentData agent); + + /// + /// Adds a new friend to the database for XUser + /// + /// The agent that who's friends list is being added to + /// The agent that being added to the friends list of the friends list owner + /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects + void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms); + + /// + /// Delete friend on friendlistowner's friendlist. + /// + /// The agent that who's friends list is being updated + /// The Ex-friend agent + void RemoveUserFriend(UUID friendlistowner, UUID friend); + + /// + /// Update permissions for friend on friendlistowner's friendlist. + /// + /// The agent that who's friends list is being updated + /// The agent that is getting or loosing permissions + /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects + void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms); + + /// + /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for UUID friendslistowner + /// + /// The agent that we're retreiving the friends Data. + List GetUserFriendList(UUID friendlistowner); + + /// + /// Returns a list of + /// A of , mapping the s to s. + /// + Dictionary GetFriendRegionInfos(List uuids); + + /// + /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES) + /// + /// The account to transfer from + /// The account to transfer to + /// The amount to transfer + /// Successful? + bool MoneyTransferRequest(UUID from, UUID to, uint amount); + + /// + /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account. + /// + /// User to transfer from + /// User to transfer to + /// Specified inventory item + /// Successful? + bool InventoryTransferRequest(UUID from, UUID to, UUID inventory); + + /// + /// Initialises the plugin (artificial constructor) + /// + void Initialise(string connect); + + /// + /// Gets the user appearance + /// + AvatarAppearance GetUserAppearance(UUID user); + + void UpdateUserAppearance(UUID user, AvatarAppearance appearance); + + void ResetAttachments(UUID userID); + + void LogoutUsers(UUID regionID); + } + + public class UserDataInitialiser : PluginInitialiserBase + { + private string connect; + public UserDataInitialiser (string s) { connect = s; } + public override void Initialise (IPlugin plugin) + { + IUserDataPlugin p = plugin as IUserDataPlugin; + p.Initialise (connect); + } + } +} diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 2e3efd5..b12abb3 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs @@ -35,8 +35,8 @@ using OpenMetaverse; using OpenMetaverse.StructuredData; using log4net; using Nwc.XmlRpc; -using OpenSim.Framework; using OpenSim.Framework.Statistics; +using OpenSim.Data; namespace OpenSim.Framework.Communications { @@ -52,22 +52,22 @@ namespace OpenSim.Framework.Communications /// List of plugins to search for user data /// private List _plugins = new List(); - + protected IInterServiceInventoryServices m_interServiceInventoryService; - + /// /// Constructor /// /// public UserManagerBase(IInterServiceInventoryServices interServiceInventoryService) { - m_interServiceInventoryService = interServiceInventoryService; - } - + m_interServiceInventoryService = interServiceInventoryService; + } + /// /// Add a new user data plugin - plugins will be requested in the order they were added. /// - /// The plugin that will provide user data + /// The plugin that will provide user data public void AddPlugin(IUserDataPlugin plugin) { _plugins.Add(plugin); @@ -85,13 +85,13 @@ namespace OpenSim.Framework.Communications // loader will try to load all providers (MySQL, MSSQL, etc) // unless it is constrainted to the correct "Provider" entry in the addin.xml - loader.Add("/OpenSim/UserData", new PluginProviderFilter(provider)); + loader.Add("/OpenSim/UserData", new PluginProviderFilter(provider)); loader.Load(); _plugins.AddRange(loader.Plugins); } - #region Get UserProfile + #region Get UserProfile // see IUserService public UserProfileData GetUserProfile(string fname, string lname) @@ -109,7 +109,7 @@ namespace OpenSim.Framework.Communications return null; } - + public void LogoutUsers(UUID regionID) { foreach (IUserDataPlugin plugin in _plugins) @@ -117,7 +117,7 @@ namespace OpenSim.Framework.Communications plugin.LogoutUsers(regionID); } } - + public void ResetAttachments(UUID userID) { foreach (IUserDataPlugin plugin in _plugins) @@ -125,7 +125,7 @@ namespace OpenSim.Framework.Communications plugin.ResetAttachments(userID); } } - + public UserAgentData GetAgentByUUID(UUID userId) { foreach (IUserDataPlugin plugin in _plugins) @@ -140,7 +140,7 @@ namespace OpenSim.Framework.Communications return null; } - + // see IUserService public virtual UserProfileData GetUserProfile(UUID uuid) { @@ -173,7 +173,7 @@ namespace OpenSim.Framework.Communications return new List(); } } - + return pickerlist; } @@ -216,8 +216,8 @@ namespace OpenSim.Framework.Communications try { UserAgentData result = plugin.GetAgentByUUID(uuid); - - if (result != null) + + if (result != null) { return result; } @@ -288,8 +288,8 @@ namespace OpenSim.Framework.Communications try { List result = plugin.GetUserFriendList(ownerID); - - if (result != null) + + if (result != null) { return result; } @@ -310,8 +310,8 @@ namespace OpenSim.Framework.Communications try { Dictionary result = plugin.GetFriendRegionInfos(uuids); - - if (result != null) + + if (result != null) { return result; } @@ -396,7 +396,7 @@ namespace OpenSim.Framework.Communications { return; } - + profile.CurrentAgent = null; UpdateUserProfile(profile); @@ -623,7 +623,7 @@ namespace OpenSim.Framework.Communications string firstName, string lastName, string password, string email, uint regX, uint regY, UUID SetUUID) { string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); - + UserProfileData user = new UserProfileData(); user.HomeLocation = new Vector3(128, 128, 100); user.ID = SetUUID; @@ -657,9 +657,9 @@ namespace OpenSim.Framework.Communications else { m_interServiceInventoryService.CreateNewUserInventory(userProf.ID); - + return userProf.ID; - } + } } /// @@ -672,22 +672,22 @@ namespace OpenSim.Framework.Communications public bool ResetUserPassword(string firstName, string lastName, string newPassword) { string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(newPassword) + ":" + String.Empty); - + UserProfileData profile = GetUserProfile(firstName, lastName); - + if (null == profile) { m_log.ErrorFormat("[USERSTORAGE]: Could not find user {0} {1}", firstName, lastName); return false; } - + profile.PasswordHash = md5PasswdHash; profile.PasswordSalt = String.Empty; - + UpdateUserProfile(profile); - + return true; - } + } public abstract UserProfileData SetupMasterUser(string firstName, string lastName); public abstract UserProfileData SetupMasterUser(string firstName, string lastName, string password); diff --git a/OpenSim/Framework/IUserData.cs b/OpenSim/Framework/IUserData.cs deleted file mode 100644 index 4653255..0000000 --- a/OpenSim/Framework/IUserData.cs +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSim Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Collections.Generic; -using OpenMetaverse; - -namespace OpenSim.Framework -{ - /// - /// An interface for connecting to user storage servers. - /// - public interface IUserDataPlugin : IPlugin - { - /// - /// Returns a user profile from a database via their UUID - /// - /// The user's UUID - /// The user data profile. Returns null if no user is found - UserProfileData GetUserByUUID(UUID user); - - /// - /// Returns a users profile by searching their username parts - /// - /// Account firstname - /// Account lastname - /// The user data profile - UserProfileData GetUserByName(string fname, string lname); - - /// - /// Returns a list of UUIDs firstnames and lastnames that match string query entered into the avatar picker. - /// - /// ID associated with the user's query. This must match what the client sent - /// The filtered contents of the search box when the user hit search. - /// The user data profile - List GeneratePickerResults(UUID queryID, string query); - - /// - /// Returns the current agent for a user searching by it's UUID - /// - /// The users UUID - /// The current agent session - UserAgentData GetAgentByUUID(UUID user); - - /// - /// Returns the current session agent for a user searching by username - /// - /// The users account name - /// The current agent session - UserAgentData GetAgentByName(string name); - - /// - /// Returns the current session agent for a user searching by username parts - /// - /// The users first account name - /// The users account surname - /// The current agent session - UserAgentData GetAgentByName(string fname, string lname); - - /// - /// Stores new web-login key for user during web page login - /// - /// - void StoreWebLoginKey(UUID agentID, UUID webLoginKey); - - /// - /// Adds a new User profile to the database - /// - /// UserProfile to add - void AddNewUserProfile(UserProfileData user); - - /// - /// Updates an existing user profile - /// - /// UserProfile to update - bool UpdateUserProfile(UserProfileData user); - - /// - /// Adds a new agent to the database - /// - /// The agent to add - void AddNewUserAgent(UserAgentData agent); - - /// - /// Adds a new friend to the database for XUser - /// - /// The agent that who's friends list is being added to - /// The agent that being added to the friends list of the friends list owner - /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects - void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms); - - /// - /// Delete friend on friendlistowner's friendlist. - /// - /// The agent that who's friends list is being updated - /// The Ex-friend agent - void RemoveUserFriend(UUID friendlistowner, UUID friend); - - /// - /// Update permissions for friend on friendlistowner's friendlist. - /// - /// The agent that who's friends list is being updated - /// The agent that is getting or loosing permissions - /// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects - void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms); - - /// - /// Returns a list of FriendsListItems that describe the friends and permissions in the friend relationship for UUID friendslistowner - /// - /// The agent that we're retreiving the friends Data. - List GetUserFriendList(UUID friendlistowner); - - /// - /// Returns a list of - /// A of , mapping the s to s. - /// - Dictionary GetFriendRegionInfos(List uuids); - - /// - /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES) - /// - /// The account to transfer from - /// The account to transfer to - /// The amount to transfer - /// Successful? - bool MoneyTransferRequest(UUID from, UUID to, uint amount); - - /// - /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account. - /// - /// User to transfer from - /// User to transfer to - /// Specified inventory item - /// Successful? - bool InventoryTransferRequest(UUID from, UUID to, UUID inventory); - - /// - /// Initialises the plugin (artificial constructor) - /// - void Initialise(string connect); - - /// - /// Gets the user appearance - /// - AvatarAppearance GetUserAppearance(UUID user); - - void UpdateUserAppearance(UUID user, AvatarAppearance appearance); - - void ResetAttachments(UUID userID); - - void LogoutUsers(UUID regionID); - } - - public class UserDataInitialiser : PluginInitialiserBase - { - private string connect; - public UserDataInitialiser (string s) { connect = s; } - public override void Initialise (IPlugin plugin) - { - IUserDataPlugin p = plugin as IUserDataPlugin; - p.Initialise (connect); - } - } -} diff --git a/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs index 8dccacc..73e8a09 100644 --- a/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs +++ b/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs @@ -29,6 +29,7 @@ using System; using System.Collections.Generic; using OpenMetaverse; using OpenSim.Framework; +using OpenSim.Data; namespace OpenSim.Tests.Common.Mock { @@ -205,4 +206,4 @@ namespace OpenSim.Tests.Common.Mock public void LogoutUsers(UUID regionID) {} } -} \ No newline at end of file +} diff --git a/bin/OpenSim.Data.addin.xml b/bin/OpenSim.Data.addin.xml index 138f0ba..2a3db5f 100644 --- a/bin/OpenSim.Data.addin.xml +++ b/bin/OpenSim.Data.addin.xml @@ -21,6 +21,6 @@ - + -- cgit v1.1