Less refs to UserProfileCacheService. Compiles but likely doesn't run.
parent
6b60f3cce5
commit
25fdbd6cbc
|
@ -135,69 +135,6 @@ namespace OpenSim.Framework.Communications
|
|||
return;
|
||||
}
|
||||
|
||||
public void HandleUUIDNameRequest(UUID uuid, IClientAPI remote_client)
|
||||
{
|
||||
if (uuid == m_userProfileCacheService.LibraryRoot.Owner)
|
||||
{
|
||||
remote_client.SendNameReply(uuid, "Mr", "OpenSim");
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] names = doUUIDNameRequest(uuid);
|
||||
if (names.Length == 2)
|
||||
{
|
||||
remote_client.SendNameReply(uuid, names[0], names[1]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private string[] doUUIDNameRequest(UUID uuid)
|
||||
{
|
||||
lock (m_nameRequestCache)
|
||||
{
|
||||
if (m_nameRequestCache.ContainsKey(uuid))
|
||||
return m_nameRequestCache[uuid];
|
||||
}
|
||||
|
||||
string[] returnstring = new string[0];
|
||||
CachedUserInfo uinfo = UserProfileCacheService.GetUserDetails(uuid);
|
||||
|
||||
if ((uinfo != null) && (uinfo.UserProfile != null))
|
||||
{
|
||||
returnstring = new string[2];
|
||||
returnstring[0] = uinfo.UserProfile.FirstName;
|
||||
returnstring[1] = uinfo.UserProfile.SurName;
|
||||
lock (m_nameRequestCache)
|
||||
{
|
||||
if (!m_nameRequestCache.ContainsKey(uuid))
|
||||
m_nameRequestCache.Add(uuid, returnstring);
|
||||
}
|
||||
}
|
||||
|
||||
return returnstring;
|
||||
}
|
||||
|
||||
public bool UUIDNameCachedTest(UUID uuid)
|
||||
{
|
||||
lock (m_nameRequestCache)
|
||||
return m_nameRequestCache.ContainsKey(uuid);
|
||||
}
|
||||
|
||||
public string UUIDNameRequestString(UUID uuid)
|
||||
{
|
||||
string[] names = doUUIDNameRequest(uuid);
|
||||
if (names.Length == 2)
|
||||
{
|
||||
string firstname = names[0];
|
||||
string lastname = names[1];
|
||||
|
||||
return firstname + " " + lastname;
|
||||
|
||||
}
|
||||
return "(hippos)";
|
||||
}
|
||||
|
||||
public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(UUID queryID, string query)
|
||||
{
|
||||
List<AvatarPickerAvatar> pickerlist = m_userService.GenerateAgentPickerRequestResponse(queryID, query);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
using System.Collections.Generic;
|
||||
using OpenSim.Data;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Services.Interfaces;
|
||||
|
||||
namespace OpenSim.Framework.Communications.Osp
|
||||
{
|
||||
|
@ -37,12 +38,13 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
public class OspInventoryWrapperPlugin : IInventoryDataPlugin
|
||||
{
|
||||
protected IInventoryDataPlugin m_wrappedPlugin;
|
||||
protected CommunicationsManager m_commsManager;
|
||||
//protected CommunicationsManager m_commsManager;
|
||||
protected IUserAccountService m_userAccountService;
|
||||
|
||||
public OspInventoryWrapperPlugin(IInventoryDataPlugin wrappedPlugin, CommunicationsManager commsManager)
|
||||
public OspInventoryWrapperPlugin(IInventoryDataPlugin wrappedPlugin, IUserAccountService userService)
|
||||
{
|
||||
m_wrappedPlugin = wrappedPlugin;
|
||||
m_commsManager = commsManager;
|
||||
m_userAccountService = userService;
|
||||
}
|
||||
|
||||
public string Name { get { return "OspInventoryWrapperPlugin"; } }
|
||||
|
@ -81,7 +83,7 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
|
||||
protected InventoryItemBase PostProcessItem(InventoryItemBase item)
|
||||
{
|
||||
item.CreatorIdAsUuid = OspResolver.ResolveOspa(item.CreatorId, m_commsManager);
|
||||
item.CreatorIdAsUuid = OspResolver.ResolveOspa(item.CreatorId, m_userAccountService);
|
||||
return item;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ using log4net;
|
|||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Services.Interfaces;
|
||||
|
||||
namespace OpenSim.Framework.Communications.Osp
|
||||
{
|
||||
|
@ -55,11 +56,11 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
/// <param name="userId"></param>
|
||||
/// <param name="commsManager"></param>
|
||||
/// <returns>The OSPA. Null if a user with the given UUID could not be found.</returns>
|
||||
public static string MakeOspa(UUID userId, CommunicationsManager commsManager)
|
||||
public static string MakeOspa(UUID userId, IUserAccountService userService)
|
||||
{
|
||||
CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userId);
|
||||
if (userInfo != null)
|
||||
return MakeOspa(userInfo.UserProfile.FirstName, userInfo.UserProfile.SurName);
|
||||
UserAccount account = userService.GetUserAccount(UUID.Zero, userId);
|
||||
if (account != null)
|
||||
return MakeOspa(account.FirstName, account.LastName);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -88,7 +89,7 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
/// A suitable UUID for use in Second Life client communication. If the string was not a valid ospa, then UUID.Zero
|
||||
/// is returned.
|
||||
/// </returns>
|
||||
public static UUID ResolveOspa(string ospa, CommunicationsManager commsManager)
|
||||
public static UUID ResolveOspa(string ospa, IUserAccountService userService)
|
||||
{
|
||||
if (!ospa.StartsWith(OSPA_PREFIX))
|
||||
return UUID.Zero;
|
||||
|
@ -112,7 +113,7 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
string value = tuple.Substring(tupleSeparatorIndex + 1).Trim();
|
||||
|
||||
if (OSPA_NAME_KEY == key)
|
||||
return ResolveOspaName(value, commsManager);
|
||||
return ResolveOspaName(value, userService);
|
||||
}
|
||||
|
||||
return UUID.Zero;
|
||||
|
@ -137,7 +138,7 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
/// <returns>
|
||||
/// An OpenSim internal identifier for the name given. Returns null if the name was not valid
|
||||
/// </returns>
|
||||
protected static UUID ResolveOspaName(string name, CommunicationsManager commsManager)
|
||||
protected static UUID ResolveOspaName(string name, IUserAccountService userService)
|
||||
{
|
||||
int nameSeparatorIndex = name.IndexOf(OSPA_NAME_VALUE_SEPARATOR);
|
||||
|
||||
|
@ -150,9 +151,9 @@ namespace OpenSim.Framework.Communications.Osp
|
|||
string firstName = name.Remove(nameSeparatorIndex).TrimEnd();
|
||||
string lastName = name.Substring(nameSeparatorIndex + 1).TrimStart();
|
||||
|
||||
CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(firstName, lastName);
|
||||
if (userInfo != null)
|
||||
return userInfo.UserProfile.ID;
|
||||
UserAccount account = userService.GetUserAccount(UUID.Zero, firstName, lastName);
|
||||
if (account != null)
|
||||
return account.PrincipalID;
|
||||
|
||||
// XXX: Disable temporary user profile creation for now as implementation is incomplete - justincc
|
||||
/*
|
||||
|
|
|
@ -130,7 +130,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
|
|||
}
|
||||
else
|
||||
{
|
||||
string killer = DeadAvatar.Scene.CommsManager.UUIDNameRequestString(part.OwnerID);
|
||||
string killer = DeadAvatar.Scene.GetUserName(part.OwnerID);
|
||||
DeadAvatar.ControllingClient.SendAgentAlertMessage("You impaled yourself on " + part.Name + " owned by " + killer +"!", true);
|
||||
}
|
||||
//DeadAvatar.Scene. part.ObjectOwner
|
||||
|
|
|
@ -357,7 +357,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
// Don't use the item ID that's in the file
|
||||
item.ID = UUID.Random();
|
||||
|
||||
UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_scene.CommsManager);
|
||||
UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_scene.UserAccountService);
|
||||
if (UUID.Zero != ospResolvedId)
|
||||
{
|
||||
item.CreatorIdAsUuid = ospResolvedId;
|
||||
|
|
|
@ -148,7 +148,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
m_userUuids[inventoryItem.CreatorIdAsUuid] = 1;
|
||||
|
||||
InventoryItemBase saveItem = (InventoryItemBase)inventoryItem.Clone();
|
||||
saveItem.CreatorId = OspResolver.MakeOspa(saveItem.CreatorIdAsUuid, m_scene.CommsManager);
|
||||
saveItem.CreatorId = OspResolver.MakeOspa(saveItem.CreatorIdAsUuid, m_scene.UserAccountService);
|
||||
|
||||
string serialization = UserInventoryItemSerializer.Serialize(saveItem);
|
||||
m_archiveWriter.WriteFile(filename, serialization);
|
||||
|
|
|
@ -649,16 +649,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
|||
lsri.TaskID = sog.UUID;
|
||||
lsri.TaskLocalID = sog.LocalId;
|
||||
lsri.TaskName = sog.GetPartName(obj);
|
||||
if (m_scene.CommsManager.UUIDNameCachedTest(sog.OwnerID))
|
||||
{
|
||||
lsri.OwnerName = m_scene.CommsManager.UUIDNameRequestString(sog.OwnerID);
|
||||
}
|
||||
else
|
||||
{
|
||||
lsri.OwnerName = "waiting";
|
||||
lock (uuidNameLookupList)
|
||||
uuidNameLookupList.Add(sog.OwnerID);
|
||||
}
|
||||
|
||||
if (filter.Length != 0)
|
||||
{
|
||||
|
@ -709,7 +702,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
|||
for (int i = 0; i < uuidarr.Length; i++)
|
||||
{
|
||||
// string lookupname = m_scene.CommsManager.UUIDNameRequestString(uuidarr[i]);
|
||||
m_scene.CommsManager.UUIDNameRequestString(uuidarr[i]);
|
||||
m_scene.GetUserName(uuidarr[i]);
|
||||
// we drop it. It gets cached though... so we're ready for the next request.
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ using OpenMetaverse.Packets;
|
|||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Services.Interfaces;
|
||||
|
||||
namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
|
@ -416,6 +417,23 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
);
|
||||
}
|
||||
|
||||
public void HandleUUIDNameRequest(UUID uuid, IClientAPI remote_client)
|
||||
{
|
||||
if (uuid == CommsManager.UserProfileCacheService.LibraryRoot.Owner)
|
||||
{
|
||||
remote_client.SendNameReply(uuid, "Mr", "OpenSim");
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] names = GetUserNames(uuid);
|
||||
if (names.Length == 2)
|
||||
{
|
||||
remote_client.SendNameReply(uuid, names[0], names[1]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle a fetch inventory request from the client
|
||||
/// </summary>
|
||||
|
|
|
@ -841,6 +841,36 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
return m_simulatorVersion;
|
||||
}
|
||||
|
||||
public string[] GetUserNames(UUID uuid)
|
||||
{
|
||||
string[] returnstring = new string[0];
|
||||
|
||||
UserAccount account = UserAccountService.GetUserAccount(RegionInfo.ScopeID, uuid);
|
||||
|
||||
if (account != null)
|
||||
{
|
||||
returnstring = new string[2];
|
||||
returnstring[0] = account.FirstName;
|
||||
returnstring[1] = account.LastName;
|
||||
}
|
||||
|
||||
return returnstring;
|
||||
}
|
||||
|
||||
public string GetUserName(UUID uuid)
|
||||
{
|
||||
string[] names = GetUserNames(uuid);
|
||||
if (names.Length == 2)
|
||||
{
|
||||
string firstname = names[0];
|
||||
string lastname = names[1];
|
||||
|
||||
return firstname + " " + lastname;
|
||||
|
||||
}
|
||||
return "(hippos)";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Another region is up.
|
||||
///
|
||||
|
@ -2804,7 +2834,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public virtual void SubscribeToClientGridEvents(IClientAPI client)
|
||||
{
|
||||
client.OnNameFromUUIDRequest += CommsManager.HandleUUIDNameRequest;
|
||||
client.OnNameFromUUIDRequest += HandleUUIDNameRequest;
|
||||
client.OnMoneyTransferRequest += ProcessMoneyTransferRequest;
|
||||
client.OnAvatarPickerRequest += ProcessAvatarPickerRequest;
|
||||
client.OnSetStartLocationRequest += SetHomeRezPoint;
|
||||
|
@ -2959,7 +2989,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public virtual void UnSubscribeToClientGridEvents(IClientAPI client)
|
||||
{
|
||||
client.OnNameFromUUIDRequest -= CommsManager.HandleUUIDNameRequest;
|
||||
client.OnNameFromUUIDRequest -= HandleUUIDNameRequest;
|
||||
client.OnMoneyTransferRequest -= ProcessMoneyTransferRequest;
|
||||
client.OnAvatarPickerRequest -= ProcessAvatarPickerRequest;
|
||||
client.OnSetStartLocationRequest -= SetHomeRezPoint;
|
||||
|
|
|
@ -29,6 +29,7 @@ using System;
|
|||
using System.Reflection;
|
||||
using Nini.Config;
|
||||
using OpenSim.Data;
|
||||
using OpenSim.Framework.Console;
|
||||
using OpenSim.Services.Interfaces;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
|
@ -37,10 +38,17 @@ namespace OpenSim.Services.UserAccountService
|
|||
{
|
||||
public class UserAccountService : UserAccountServiceBase, IUserAccountService
|
||||
{
|
||||
public UserAccountService(IConfigSource config) : base(config)
|
||||
public UserAccountService(IConfigSource config)
|
||||
: base(config)
|
||||
{
|
||||
MainConsole.Instance.Commands.AddCommand("UserService", false,
|
||||
"create user",
|
||||
"create user [<first> [<last> [<pass> [<x> <y> [<email>]]]]]",
|
||||
"Create a new user", HandleCreateUser);
|
||||
}
|
||||
|
||||
#region IUserAccountService
|
||||
|
||||
public UserAccount GetUserAccount(UUID scopeID, string firstName,
|
||||
string lastName)
|
||||
{
|
||||
|
@ -49,14 +57,14 @@ namespace OpenSim.Services.UserAccountService
|
|||
if (scopeID != UUID.Zero)
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"ScopeID", "FirstName", "LastName"},
|
||||
new string[] {scopeID.ToString(), firstName, lastName});
|
||||
new string[] { "ScopeID", "FirstName", "LastName" },
|
||||
new string[] { scopeID.ToString(), firstName, lastName });
|
||||
}
|
||||
else
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"FirstName", "LastName"},
|
||||
new string[] {firstName, lastName});
|
||||
new string[] { "FirstName", "LastName" },
|
||||
new string[] { firstName, lastName });
|
||||
}
|
||||
|
||||
if (d.Length < 1)
|
||||
|
@ -75,12 +83,12 @@ namespace OpenSim.Services.UserAccountService
|
|||
u.Email = d.Data["Email"].ToString();
|
||||
u.Created = Convert.ToInt32(d.Data["Created"].ToString());
|
||||
|
||||
string[] URLs = d.Data["ServiceURLs"].ToString().Split(new char[] {' '});
|
||||
string[] URLs = d.Data["ServiceURLs"].ToString().Split(new char[] { ' ' });
|
||||
u.ServiceURLs = new Dictionary<string, object>();
|
||||
|
||||
foreach(string url in URLs)
|
||||
foreach (string url in URLs)
|
||||
{
|
||||
string[] parts = url.Split(new char[] {'='});
|
||||
string[] parts = url.Split(new char[] { '=' });
|
||||
|
||||
if (parts.Length != 2)
|
||||
continue;
|
||||
|
@ -101,14 +109,14 @@ namespace OpenSim.Services.UserAccountService
|
|||
if (scopeID != UUID.Zero)
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"ScopeID", "Email"},
|
||||
new string[] {scopeID.ToString(), email});
|
||||
new string[] { "ScopeID", "Email" },
|
||||
new string[] { scopeID.ToString(), email });
|
||||
}
|
||||
else
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"Email"},
|
||||
new string[] {email});
|
||||
new string[] { "Email" },
|
||||
new string[] { email });
|
||||
}
|
||||
|
||||
if (d.Length < 1)
|
||||
|
@ -124,14 +132,14 @@ namespace OpenSim.Services.UserAccountService
|
|||
if (scopeID != UUID.Zero)
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"ScopeID", "PrincipalID"},
|
||||
new string[] {scopeID.ToString(), principalID.ToString()});
|
||||
new string[] { "ScopeID", "PrincipalID" },
|
||||
new string[] { scopeID.ToString(), principalID.ToString() });
|
||||
}
|
||||
else
|
||||
{
|
||||
d = m_Database.Get(
|
||||
new string[] {"PrincipalID"},
|
||||
new string[] {principalID.ToString()});
|
||||
new string[] { "PrincipalID" },
|
||||
new string[] { principalID.ToString() });
|
||||
}
|
||||
|
||||
if (d.Length < 1)
|
||||
|
@ -148,13 +156,13 @@ namespace OpenSim.Services.UserAccountService
|
|||
d.LastName = data.LastName;
|
||||
d.PrincipalID = data.PrincipalID;
|
||||
d.ScopeID = data.ScopeID;
|
||||
d.Data = new Dictionary<string,string>();
|
||||
d.Data = new Dictionary<string, string>();
|
||||
d.Data["Email"] = data.Email;
|
||||
d.Data["Created"] = data.Created.ToString();
|
||||
|
||||
List<string> parts = new List<string>();
|
||||
|
||||
foreach (KeyValuePair<string,object> kvp in data.ServiceURLs)
|
||||
foreach (KeyValuePair<string, object> kvp in data.ServiceURLs)
|
||||
{
|
||||
string key = System.Web.HttpUtility.UrlEncode(kvp.Key);
|
||||
string val = System.Web.HttpUtility.UrlEncode(kvp.Value.ToString());
|
||||
|
@ -180,5 +188,66 @@ namespace OpenSim.Services.UserAccountService
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Console commands
|
||||
/// <summary>
|
||||
/// Create a new user
|
||||
/// </summary>
|
||||
/// <param name="cmdparams">string array with parameters: firstname, lastname, password, locationX, locationY, email</param>
|
||||
protected void HandleCreateUser(string module, string[] cmdparams)
|
||||
{
|
||||
string firstName;
|
||||
string lastName;
|
||||
string password;
|
||||
string email;
|
||||
uint regX = 1000;
|
||||
uint regY = 1000;
|
||||
|
||||
// IConfig standalone;
|
||||
// if ((standalone = m_config.Source.Configs["StandAlone"]) != null)
|
||||
// {
|
||||
// regX = (uint)standalone.GetInt("default_location_x", (int)regX);
|
||||
// regY = (uint)standalone.GetInt("default_location_y", (int)regY);
|
||||
// }
|
||||
|
||||
|
||||
// if (cmdparams.Length < 3)
|
||||
// firstName = MainConsole.Instance.CmdPrompt("First name", "Default");
|
||||
// else firstName = cmdparams[2];
|
||||
|
||||
// if (cmdparams.Length < 4)
|
||||
// lastName = MainConsole.Instance.CmdPrompt("Last name", "User");
|
||||
// else lastName = cmdparams[3];
|
||||
|
||||
// if (cmdparams.Length < 5)
|
||||
// password = MainConsole.Instance.PasswdPrompt("Password");
|
||||
// else password = cmdparams[4];
|
||||
|
||||
// if (cmdparams.Length < 6)
|
||||
// regX = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region X", regX.ToString()));
|
||||
// else regX = Convert.ToUInt32(cmdparams[5]);
|
||||
|
||||
// if (cmdparams.Length < 7)
|
||||
// regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString()));
|
||||
// else regY = Convert.ToUInt32(cmdparams[6]);
|
||||
|
||||
// if (cmdparams.Length < 8)
|
||||
// email = MainConsole.Instance.CmdPrompt("Email", "");
|
||||
// else email = cmdparams[7];
|
||||
|
||||
// if (null == m_commsManager.UserProfileCacheService.GetUserDetails(firstName, lastName))
|
||||
// {
|
||||
// m_commsManager.UserAdminService.AddUser(firstName, lastName, password, email, regX, regY);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName);
|
||||
// }
|
||||
//}
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue