From 3507005d9decdbf579fb2b7b9928a7d97bd6cf5b Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 31 Dec 2009 01:16:16 +0000 Subject: Remove CreateUserAccount. Rename SetUserAccount to StoreUserAccount. Implement the fetch operations fully. Rename one last UserService file to UserAccountService --- OpenSim/Services/Interfaces/IUserAccountService.cs | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 OpenSim/Services/Interfaces/IUserAccountService.cs (limited to 'OpenSim/Services/Interfaces/IUserAccountService.cs') diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs new file mode 100644 index 0000000..b2d5d48 --- /dev/null +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs @@ -0,0 +1,103 @@ +/* + * 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 OpenSimulator 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; +using System.Collections.Generic; +using OpenMetaverse; + +namespace OpenSim.Services.Interfaces +{ + public class UserAccount + { + public UserAccount() + { + } + + public UserAccount(UUID principalID) + { + PrincipalID = principalID; + } + + public string FirstName; + public string LastName; + public string Email; + public UUID PrincipalID; + public UUID ScopeID; + + public Dictionary ServiceURLs; + + public int Created; + + public UserAccount(Dictionary kvp) + { + if (kvp.ContainsKey("FirstName")) + FirstName = kvp["FirstName"].ToString(); + if (kvp.ContainsKey("LastName")) + LastName = kvp["LastName"].ToString(); + if (kvp.ContainsKey("Email")) + Email = kvp["Email"].ToString(); + if (kvp.ContainsKey("PrincipalID")) + UUID.TryParse(kvp["PrincipalID"].ToString(), out PrincipalID); + if (kvp.ContainsKey("ScopeID")) + UUID.TryParse(kvp["ScopeID"].ToString(), out ScopeID); + if (kvp.ContainsKey("Created")) + Convert.ToInt32(kvp["Created"].ToString()); + if (kvp.ContainsKey("ServiceURLs") && kvp["ServiceURLs"] != null && (kvp["ServiceURLs"] is Dictionary)) + ServiceURLs = (Dictionary)kvp["ServiceURLs"]; + } + + public Dictionary ToKeyValuePairs() + { + Dictionary result = new Dictionary(); + result["FirstName"] = FirstName; + result["LastName"] = LastName; + result["Email"] = Email; + result["PrincipalID"] = PrincipalID.ToString(); + result["ScopeID"] = ScopeID.ToString(); + result["Created"] = Created.ToString(); + result["ServiceURLs"] = ServiceURLs; + + return result; + } + }; + + public interface IUserAccountService + { + UserAccount GetUserAccount(UUID scopeID, UUID userID); + UserAccount GetUserAccount(UUID scopeID, string FirstName, string LastName); + UserAccount GetUserAccount(UUID scopeID, string Email); + // Returns the list of avatars that matches both the search + // criterion and the scope ID passed + // + List GetUserAccounts(UUID scopeID, string query); + + // Store the data given, wich replaces the sotred data, therefore + // must be complete. + // + bool StoreUserAccount(UserAccount data); + } +} -- cgit v1.1 From f8c79fe20acb165adc363c3a0565ad53810ae341 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 2 Jan 2010 20:11:59 -0800 Subject: Flattening the ServiceURLs --- OpenSim/Services/Interfaces/IUserAccountService.cs | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'OpenSim/Services/Interfaces/IUserAccountService.cs') diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index b2d5d48..87f0e6c 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs @@ -66,8 +66,22 @@ namespace OpenSim.Services.Interfaces UUID.TryParse(kvp["ScopeID"].ToString(), out ScopeID); if (kvp.ContainsKey("Created")) Convert.ToInt32(kvp["Created"].ToString()); - if (kvp.ContainsKey("ServiceURLs") && kvp["ServiceURLs"] != null && (kvp["ServiceURLs"] is Dictionary)) - ServiceURLs = (Dictionary)kvp["ServiceURLs"]; + if (kvp.ContainsKey("ServiceURLs") && kvp["ServiceURLs"] != null) + { + ServiceURLs = new Dictionary(); + string str = kvp["ServiceURLs"].ToString(); + if (str != string.Empty) + { + string[] parts = str.Split(new char[] { '#' }); + Dictionary dic = new Dictionary(); + foreach (string s in parts) + { + string[] parts2 = s.Split(new char[] { '=' }); + if (parts2.Length == 2) + ServiceURLs[parts2[0]] = parts2[1]; + } + } + } } public Dictionary ToKeyValuePairs() @@ -79,10 +93,16 @@ namespace OpenSim.Services.Interfaces result["PrincipalID"] = PrincipalID.ToString(); result["ScopeID"] = ScopeID.ToString(); result["Created"] = Created.ToString(); - result["ServiceURLs"] = ServiceURLs; + string str = string.Empty; + foreach (KeyValuePair kvp in ServiceURLs) + { + str += kvp.Key + "=" + kvp.Value + "#"; + } + result["ServiceURLs"] = str; return result; } + }; public interface IUserAccountService -- cgit v1.1 From b63405c1a796b44b58081857d01f726372467628 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 8 Jan 2010 10:43:34 -0800 Subject: Inching ahead... This compiles, but very likely does not run. --- OpenSim/Services/Interfaces/IUserAccountService.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'OpenSim/Services/Interfaces/IUserAccountService.cs') diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index 87f0e6c..b1be64b 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs @@ -42,6 +42,17 @@ namespace OpenSim.Services.Interfaces PrincipalID = principalID; } + public UserAccount(UUID scopeID, string firstName, string lastName, string email) + { + PrincipalID = UUID.Random(); + ScopeID = scopeID; + FirstName = firstName; + LastName = lastName; + Email = email; + ServiceURLs = new Dictionary(); + // Created = ??? + } + public string FirstName; public string LastName; public string Email; -- cgit v1.1 From 1e1b2ab221851efc414678b7ea52ef2ca788ce9f Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 10 Jan 2010 10:40:07 -0800 Subject: * OMG! All but one references to UserProfileCacheService have been rerouted! * HG is seriously broken here * Compiles. Untested. --- OpenSim/Services/Interfaces/IUserAccountService.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'OpenSim/Services/Interfaces/IUserAccountService.cs') diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index b1be64b..942174c 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs @@ -58,11 +58,19 @@ namespace OpenSim.Services.Interfaces public string Email; public UUID PrincipalID; public UUID ScopeID; + public int UserLevel; + public int UserFlags; + public string UserTitle; public Dictionary ServiceURLs; public int Created; + public string Name + { + get { return FirstName + " " + LastName; } + } + public UserAccount(Dictionary kvp) { if (kvp.ContainsKey("FirstName")) @@ -75,6 +83,13 @@ namespace OpenSim.Services.Interfaces UUID.TryParse(kvp["PrincipalID"].ToString(), out PrincipalID); if (kvp.ContainsKey("ScopeID")) UUID.TryParse(kvp["ScopeID"].ToString(), out ScopeID); + if (kvp.ContainsKey("UserLevel")) + Convert.ToInt32(kvp["UserLevel"].ToString()); + if (kvp.ContainsKey("UserFlags")) + Convert.ToInt32(kvp["UserFlags"].ToString()); + if (kvp.ContainsKey("UserTitle")) + Email = kvp["UserTitle"].ToString(); + if (kvp.ContainsKey("Created")) Convert.ToInt32(kvp["Created"].ToString()); if (kvp.ContainsKey("ServiceURLs") && kvp["ServiceURLs"] != null) @@ -104,6 +119,10 @@ namespace OpenSim.Services.Interfaces result["PrincipalID"] = PrincipalID.ToString(); result["ScopeID"] = ScopeID.ToString(); result["Created"] = Created.ToString(); + result["UserLavel"] = UserLevel.ToString(); + result["UserFlags"] = UserFlags.ToString(); + result["UserTitle"] = UserTitle; + string str = string.Empty; foreach (KeyValuePair kvp in ServiceURLs) { -- cgit v1.1 From 7356860b487febd12c2e0de2f009a6df9ea0aeec Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 13 Jan 2010 09:17:30 -0800 Subject: Several more buglets removed. --- OpenSim/Services/Interfaces/IUserAccountService.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Services/Interfaces/IUserAccountService.cs') diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index 942174c..3dacf53 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs @@ -98,11 +98,11 @@ namespace OpenSim.Services.Interfaces string str = kvp["ServiceURLs"].ToString(); if (str != string.Empty) { - string[] parts = str.Split(new char[] { '#' }); + string[] parts = str.Split(new char[] { ';' }); Dictionary dic = new Dictionary(); foreach (string s in parts) { - string[] parts2 = s.Split(new char[] { '=' }); + string[] parts2 = s.Split(new char[] { '*' }); if (parts2.Length == 2) ServiceURLs[parts2[0]] = parts2[1]; } @@ -119,14 +119,14 @@ namespace OpenSim.Services.Interfaces result["PrincipalID"] = PrincipalID.ToString(); result["ScopeID"] = ScopeID.ToString(); result["Created"] = Created.ToString(); - result["UserLavel"] = UserLevel.ToString(); + result["UserLevel"] = UserLevel.ToString(); result["UserFlags"] = UserFlags.ToString(); result["UserTitle"] = UserTitle; string str = string.Empty; foreach (KeyValuePair kvp in ServiceURLs) { - str += kvp.Key + "=" + kvp.Value + "#"; + str += kvp.Key + "*" + (kvp.Value == null ? "" : kvp.Value) + ";"; } result["ServiceURLs"] = str; -- cgit v1.1