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. --- .../InterGrid/OpenGridProtocolModule.cs | 38 ++++++++------- .../Inventory/HGInventoryBroker.cs | 1 - .../Inventory/LocalInventoryServiceConnector.cs | 1 - .../Inventory/RemoteInventoryServiceConnector.cs | 1 - OpenSim/Region/Framework/Scenes/Scene.cs | 57 +++++++--------------- .../Framework/Scenes/SceneCommunicationService.cs | 5 -- .../Avatar/XmlRpcGroups/GroupsModule.cs | 41 ++++++++-------- .../Shared/Api/Implementation/LSL_Api.cs | 20 ++++---- 8 files changed, 68 insertions(+), 96 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs index 10a3232..cf7bcef 100644 --- a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs +++ b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs @@ -534,26 +534,28 @@ namespace OpenSim.Region.CoreModules.InterGrid userProfile.WantDoMask = 0; userProfile.WebLoginKey = UUID.Random(); - // Do caps registration - // get seed capagentData.firstname = FirstName;agentData.lastname = LastName; - if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode) - { - homeScene.CommsManager.UserAdminService.AddUser( - agentData.firstname, agentData.lastname, CreateRandomStr(7), "", - homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID); + // !!! REFACTORING PROBLEM. This needs to be changed for 0.7 + // + //// Do caps registration + //// get seed capagentData.firstname = FirstName;agentData.lastname = LastName; + //if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode) + //{ + // homeScene.CommsManager.UserAdminService.AddUser( + // agentData.firstname, agentData.lastname, CreateRandomStr(7), "", + // homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID); - UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID); - if (userProfile2 != null) - { - userProfile = userProfile2; - userProfile.AboutText = "OGP USER"; - userProfile.FirstLifeAboutText = "OGP USER"; - homeScene.CommsManager.UserService.UpdateUserProfile(userProfile); - } - } + // UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID); + // if (userProfile2 != null) + // { + // userProfile = userProfile2; + // userProfile.AboutText = "OGP USER"; + // userProfile.FirstLifeAboutText = "OGP USER"; + // homeScene.CommsManager.UserService.UpdateUserProfile(userProfile); + // } + //} - // Stick our data in the cache so the region will know something about us - homeScene.CommsManager.UserProfileCacheService.PreloadUserCache(userProfile); + //// Stick our data in the cache so the region will know something about us + //homeScene.CommsManager.UserProfileCacheService.PreloadUserCache(userProfile); // Call 'new user' event handler string reason; diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs index 1fdf1ef..7584dd8 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs @@ -161,7 +161,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory m_UserProfileService = m_Scene.CommsManager.UserProfileCacheService; // ugh! m_UserProfileService.SetInventoryService(this); - scene.CommsManager.UserService.SetInventoryService(this); m_Initialized = true; } diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs index 66d11dd..f2e344f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs @@ -133,7 +133,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory { // ugh! scene.CommsManager.UserProfileCacheService.SetInventoryService(this); - scene.CommsManager.UserService.SetInventoryService(this); m_Initialized = true; } diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs index 69504df..3580c27 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs @@ -116,7 +116,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory { // ugh! scene.CommsManager.UserProfileCacheService.SetInventoryService(this); - scene.CommsManager.UserService.SetInventoryService(this); m_Initialized = true; } diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index d8874b2..e22dd2d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -296,6 +296,17 @@ namespace OpenSim.Region.Framework.Scenes } } + protected OpenSim.Services.Interfaces.IAvatarService m_AvatarService; + public OpenSim.Services.Interfaces.IAvatarService AvatarService + { + get + { + if (m_AvatarService == null) + m_AvatarService = RequestModuleInterface(); + return m_AvatarService; + } + } + protected IXMLRPC m_xmlrpcModule; protected IWorldComm m_worldCommModule; protected IAvatarFactory m_AvatarFactory; @@ -2975,21 +2986,11 @@ namespace OpenSim.Region.Framework.Scenes /// The IClientAPI for the client public virtual void TeleportClientHome(UUID agentId, IClientAPI client) { - UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(agentId); - if (UserProfile != null) + OpenSim.Services.Interfaces.PresenceInfo pinfo = PresenceService.GetAgent(client.SessionId); + + if (pinfo != null) { - GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, UserProfile.HomeRegionID); - if (regionInfo == null) - { - uint x = 0, y = 0; - Utils.LongToUInts(UserProfile.HomeRegion, out x, out y); - regionInfo = GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y); - if (regionInfo != null) // home region can be away temporarily, too - { - UserProfile.HomeRegionID = regionInfo.RegionID; - CommsManager.UserService.UpdateUserProfile(UserProfile); - } - } + GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, pinfo.HomeRegionID); if (regionInfo == null) { // can't find the Home region: Tell viewer and abort @@ -2997,7 +2998,7 @@ namespace OpenSim.Region.Framework.Scenes return; } RequestTeleportLocation( - client, regionInfo.RegionHandle, UserProfile.HomeLocation, UserProfile.HomeLookAt, + client, regionInfo.RegionHandle, pinfo.HomePosition, pinfo.HomeLookAt, (uint)(TPFlags.SetLastToTarget | TPFlags.ViaHome)); } } @@ -3089,7 +3090,7 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Sets the Home Point. The GridService uses this to know where to put a user when they log-in + /// Sets the Home Point. The LoginService uses this to know where to put a user when they log-in /// /// /// @@ -3098,27 +3099,11 @@ namespace OpenSim.Region.Framework.Scenes /// public virtual void SetHomeRezPoint(IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags) { - UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(remoteClient.AgentId); - if (UserProfile != null) - { - // I know I'm ignoring the regionHandle provided by the teleport location request. - // reusing the TeleportLocationRequest delegate, so regionHandle isn't valid - UserProfile.HomeRegionID = RegionInfo.RegionID; - // TODO: The next line can be removed, as soon as only homeRegionID based UserServers are around. - // TODO: The HomeRegion property can be removed then, too - UserProfile.HomeRegion = RegionInfo.RegionHandle; - - UserProfile.HomeLocation = position; - UserProfile.HomeLookAt = lookAt; - CommsManager.UserService.UpdateUserProfile(UserProfile); - + if (PresenceService.SetHomeLocation(remoteClient.AgentId.ToString(), RegionInfo.RegionID, position, lookAt)) // FUBAR ALERT: this needs to be "Home position set." so the viewer saves a home-screenshot. m_dialogModule.SendAlertToUser(remoteClient, "Home position set."); - } else - { m_dialogModule.SendAlertToUser(remoteClient, "Set Home request Failed."); - } } /// @@ -3254,12 +3239,6 @@ namespace OpenSim.Region.Framework.Scenes m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString()); } - // Remove client agent from profile, so new logins will work - if (!childagentYN) - { - m_sceneGridService.ClearUserAgent(agentID); - } - m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode); //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)); diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index f612d17..53693e4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -1455,11 +1455,6 @@ namespace OpenSim.Region.Framework.Scenes m_commsProvider.LogOffUser(userid, regionid, regionhandle, posx, posy, posz); } - public void ClearUserAgent(UUID avatarID) - { - m_commsProvider.UserService.ClearUserAgent(avatarID); - } - public void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms) { m_commsProvider.AddNewUserFriend(friendlistowner, friend, perms); diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs index 8d32e66..c8a10b5 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs @@ -43,6 +43,8 @@ using OpenSim.Region.CoreModules.Framework.EventQueue; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Services.Interfaces; + using Caps = OpenSim.Framework.Capabilities.Caps; using DirFindFlags = OpenMetaverse.DirectoryManager.DirFindFlags; @@ -507,10 +509,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups { if (m_debugEnabled) { - UserProfileData targetUserProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(member.AgentID); - if (targetUserProfile != null) + UserAccount targetUser = m_sceneList[0].UserAccountService.GetUserAccount(remoteClient.Scene.RegionInfo.ScopeID, member.AgentID); + if (targetUser != null) { - m_log.DebugFormat("[GROUPS]: Prepping group notice {0} for agent: {1} who Accepts Notices ({2})", NoticeID, targetUserProfile.Name, member.AcceptNotices); + m_log.DebugFormat("[GROUPS]: Prepping group notice {0} for agent: {1} who Accepts Notices ({2})", NoticeID, targetUser.FirstName + " " + targetUser.LastName, member.AcceptNotices); } else { @@ -990,9 +992,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups remoteClient.SendEjectGroupMemberReply(remoteClient.AgentId, groupID, true); GroupRecord groupInfo = m_groupData.GetGroupRecord(grID, groupID, null); - UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(ejecteeID); - - if ((groupInfo == null) || (userProfile == null)) + UserAccount account = m_sceneList[0].UserAccountService.GetUserAccount(remoteClient.Scene.RegionInfo.ScopeID, ejecteeID); + if ((groupInfo == null) || (account == null)) { return; } @@ -1032,9 +1033,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups msg.toAgentID = remoteClient.AgentId.Guid; msg.timestamp = 0; msg.fromAgentName = remoteClient.Name; - if (userProfile != null) + if (account != null) { - msg.message = string.Format("{2} has been ejected from '{1}' by {0}.", remoteClient.Name, groupInfo.GroupName, userProfile.Name); + msg.message = string.Format("{2} has been ejected from '{1}' by {0}.", remoteClient.Name, groupInfo.GroupName, account.FirstName + " " + account.LastName); } else { @@ -1147,8 +1148,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups info.RequestID.AgentID = client.AgentId; info.RequestID.SessionID = client.SessionId; - UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(client.AgentId); - if (userProfile == null) + //UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(client.AgentId); + UserAccount account = m_sceneList[0].UserAccountService.GetUserAccount(client.Scene.RegionInfo.ScopeID, client.AgentId); + if (account == null) { // This should be impossible. If I've been passed a reference to a client // that client should be registered with the UserService. So something @@ -1160,16 +1162,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups info.RequestID.UserServiceURL = m_sceneList[0].CommsManager.NetworkServersInfo.UserURL; } - else if (userProfile is ForeignUserProfileData) - { - // They aren't from around here - ForeignUserProfileData fupd = (ForeignUserProfileData)userProfile; - info.RequestID.UserServiceURL = fupd.UserServerURI; - } else { + string domain = m_sceneList[0].CommsManager.NetworkServersInfo.UserURL; + if (account.ServiceURLs["HomeURI"] != null) + domain = account.ServiceURLs["HomeURI"].ToString(); // They're a local user, use this: - info.RequestID.UserServiceURL = m_sceneList[0].CommsManager.NetworkServersInfo.UserURL; + info.RequestID.UserServiceURL = domain; } m_clientRequestIDInfo.Add(client.AgentId, info); @@ -1342,12 +1341,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); // TODO: All the client update functions need to be reexamined because most do too much and send too much stuff - UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(dataForAgentID); + UserAccount account = m_sceneList[0].UserAccountService.GetUserAccount(remoteClient.Scene.RegionInfo.ScopeID, dataForAgentID); string firstname, lastname; - if (userProfile != null) + if (account != null) { - firstname = userProfile.FirstName; - lastname = userProfile.SurName; + firstname = account.FirstName; + lastname = account.LastName; } else { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 39b597e..2bfd3fb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -52,8 +52,9 @@ using OpenSim.Region.ScriptEngine.Shared.ScriptBase; using OpenSim.Region.ScriptEngine.Interfaces; using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; using OpenSim.Services.Interfaces; - +using OpenSim.Services.Interfaces; using GridRegion = OpenSim.Services.Interfaces.GridRegion; +using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo; using AssetLandmark = OpenSim.Framework.AssetLandmark; @@ -3842,13 +3843,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api UUID uuid = (UUID)id; - UserProfileData userProfile = - World.CommsManager.UserService.GetUserProfile(uuid); + UserAccount account = World.UserAccountService.GetUserAccount(World.RegionInfo.ScopeID, uuid); - UserAgentData userAgent = - World.CommsManager.UserService.GetAgentByUUID(uuid); + PresenceInfo[] pinfos = World.PresenceService.GetAgents(new string[] { uuid.ToString() }); + PresenceInfo pinfo = PresenceInfo.GetOnlinePresence(pinfos); - if (userProfile == null || userAgent == null) + if (pinfo == null) return UUID.Zero.ToString(); string reply = String.Empty; @@ -3857,17 +3857,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { case 1: // DATA_ONLINE (0|1) // TODO: implement fetching of this information - if (userProfile.CurrentAgent!=null && userProfile.CurrentAgent.AgentOnline) + if (pinfo != null) reply = "1"; - else + else reply = "0"; break; case 2: // DATA_NAME (First Last) - reply = userProfile.FirstName + " " + userProfile.SurName; + reply = account.FirstName + " " + account.LastName; break; case 3: // DATA_BORN (YYYY-MM-DD) DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0); - born = born.AddSeconds(userProfile.Created); + born = born.AddSeconds(account.Created); reply = born.ToString("yyyy-MM-dd"); break; case 4: // DATA_RATING (0,0,0,0,0,0) -- cgit v1.1