From 6b9cc6c48d7b49cc4bce5dce4e66d7856a093b75 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 13 Aug 2009 11:30:29 -0700 Subject: Inventory redirects from CachedUserInfo to InventoryService COMPLETE! --- .../Agent/TextureDownload/TextureDownloadModule.cs | 4 +- .../Avatar/AvatarFactory/AvatarFactoryModule.cs | 45 +++++++-------------- .../World/Permissions/PermissionsModule.cs | 46 ++++------------------ 3 files changed, 25 insertions(+), 70 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Agent/TextureDownload/TextureDownloadModule.cs b/OpenSim/Region/CoreModules/Agent/TextureDownload/TextureDownloadModule.cs index fa5369f..956dd10 100644 --- a/OpenSim/Region/CoreModules/Agent/TextureDownload/TextureDownloadModule.cs +++ b/OpenSim/Region/CoreModules/Agent/TextureDownload/TextureDownloadModule.cs @@ -37,6 +37,7 @@ using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using BlockingQueue = OpenSim.Framework.BlockingQueue; +using OpenSim.Services.Interfaces; namespace OpenSim.Region.CoreModules.Agent.TextureDownload { @@ -217,7 +218,8 @@ namespace OpenSim.Region.CoreModules.Agent.TextureDownload if (profile == null) // Deny unknown user return; - if (profile.RootFolder == null) // Deny no inventory + IInventoryService invService = scene.InventoryService; + if (invService.GetRootFolder(client.AgentId) == null) // Deny no inventory return; if (profile.UserProfile.GodLevel < 200 && profile.RootFolder.FindAsset(e.RequestedAssetID) == null) // Deny if not owned diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index 33dc7a5..547f923 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs @@ -34,6 +34,7 @@ using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Services.Interfaces; namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory { @@ -115,9 +116,11 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory } - public void SetAppearanceAssets(CachedUserInfo profile, ref AvatarAppearance appearance) + public void SetAppearanceAssets(UUID userID, ref AvatarAppearance appearance) { - if (profile.RootFolder != null) + IInventoryService invService = m_scene.InventoryService; + + if (invService.GetRootFolder(userID) != null) { for (int i = 0; i < 13; i++) { @@ -127,7 +130,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory } else { - InventoryItemBase baseItem = profile.RootFolder.FindItem(appearance.Wearables[i].ItemID); + InventoryItemBase baseItem = invService.QueryItem(new InventoryItemBase(appearance.Wearables[i].ItemID)); if (baseItem != null) { @@ -143,7 +146,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory } else { - m_log.Error("[APPEARANCE]: you have no inventory, appearance stuff isn't going to work"); + m_log.WarnFormat("[APPEARANCE]: user {0} has no inventory, appearance isn't going to work", userID); } } @@ -163,8 +166,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory return; } - CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); - AvatarAppearance avatAppearance = null; if (!TryGetAvatarAppearance(clientView.AgentId, out avatAppearance)) { @@ -174,34 +175,18 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory //m_log.DebugFormat("[APPEARANCE]: Received wearables for {0}", clientView.Name); - if (profile != null) + foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) { - if (profile.RootFolder != null) + if (wear.Type < 13) { - foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) - { - if (wear.Type < 13) - { - avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID; - } - } - - SetAppearanceAssets(profile, ref avatAppearance); - - m_scene.CommsManager.AvatarService.UpdateUserAppearance(clientView.AgentId, avatAppearance); - avatar.Appearance = avatAppearance; - } - else - { - m_log.WarnFormat( - "[APPEARANCE]: Inventory has not yet been received for {0}, cannot set wearables", - clientView.Name); + avatAppearance.Wearables[wear.Type].ItemID = wear.ItemID; } } - else - { - m_log.WarnFormat("[APPEARANCE]: Cannot set wearables for {0}, no user profile found", clientView.Name); - } + + SetAppearanceAssets(avatar.UUID, ref avatAppearance); + + m_scene.CommsManager.AvatarService.UpdateUserAppearance(clientView.AgentId, avatAppearance); + avatar.Appearance = avatAppearance; } public static void GetDefaultAvatarAppearance(out AvatarWearable[] wearables, out byte[] visualParams) diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 6db9cbf..8f99395 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs @@ -35,6 +35,7 @@ using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Services.Interfaces; // Temporary fix of wrong GroupPowers constants in OpenMetaverse library enum GroupPowers : long @@ -964,19 +965,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions if (objectID == UUID.Zero) // User inventory { - CachedUserInfo userInfo = - scene.CommsManager.UserProfileCacheService.GetUserDetails(user); - - if (userInfo == null) - { - m_log.ErrorFormat("[PERMISSIONS]: Could not find user {0} for edit notecard check", user); - return false; - } - - if (userInfo.RootFolder == null) - return false; - - InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(notecard); + IInventoryService invService = m_scene.InventoryService; + InventoryItemBase assetRequestItem = invService.QueryItem(new InventoryItemBase(notecard)); if (assetRequestItem == null) // Library item { assetRequestItem = scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); @@ -1394,19 +1384,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions if (objectID == UUID.Zero) // User inventory { - CachedUserInfo userInfo = - scene.CommsManager.UserProfileCacheService.GetUserDetails(user); - - if (userInfo == null) - { - m_log.ErrorFormat("[PERMISSIONS]: Could not find user {0} for administrator check", user); - return false; - } - - if (userInfo.RootFolder == null) - return false; - - InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(script); + IInventoryService invService = m_scene.InventoryService; + InventoryItemBase assetRequestItem = invService.QueryItem(new InventoryItemBase(script)); if (assetRequestItem == null) // Library item { assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(script); @@ -1499,19 +1478,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions if (objectID == UUID.Zero) // User inventory { - CachedUserInfo userInfo = - scene.CommsManager.UserProfileCacheService.GetUserDetails(user); - - if (userInfo == null) - { - m_log.ErrorFormat("[PERMISSIONS]: Could not find user {0} for view notecard check", user); - return false; - } - - if (userInfo.RootFolder == null) - return false; - - InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(notecard); + IInventoryService invService = m_scene.InventoryService; + InventoryItemBase assetRequestItem = invService.QueryItem(new InventoryItemBase(notecard)); if (assetRequestItem == null) // Library item { assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); -- cgit v1.1