aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs42
1 files changed, 32 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
index f87aab9..bef716b 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
@@ -32,6 +32,7 @@ using System.Reflection;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Statistics; 34using OpenSim.Framework.Statistics;
35using OpenSim.Framework.Communications.Cache;
35using OpenSim.Services.Connectors; 36using OpenSim.Services.Connectors;
36using OpenSim.Region.Framework.Interfaces; 37using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes; 38using OpenSim.Region.Framework.Scenes;
@@ -48,6 +49,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
48 private bool m_Enabled = false; 49 private bool m_Enabled = false;
49 private bool m_Initialized = false; 50 private bool m_Initialized = false;
50 private Scene m_Scene; 51 private Scene m_Scene;
52 private UserProfileCacheService m_UserProfileService;
51 private InventoryServicesConnector m_RemoteConnector; 53 private InventoryServicesConnector m_RemoteConnector;
52 54
53 public Type ReplaceableInterface 55 public Type ReplaceableInterface
@@ -104,12 +106,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
104 106
105 public void AddRegion(Scene scene) 107 public void AddRegion(Scene scene)
106 { 108 {
109 m_Scene = scene;
110 m_log.Debug("[XXXX] Adding scene " + m_Scene.RegionInfo.RegionName);
111
107 if (!m_Enabled) 112 if (!m_Enabled)
108 return; 113 return;
109 114
110 if (!m_Initialized) 115 if (!m_Initialized)
111 { 116 {
112 m_Scene = scene;
113 // ugh! 117 // ugh!
114 scene.CommsManager.UserProfileCacheService.SetInventoryService(this); 118 scene.CommsManager.UserProfileCacheService.SetInventoryService(this);
115 scene.CommsManager.UserService.SetInventoryService(this); 119 scene.CommsManager.UserService.SetInventoryService(this);
@@ -130,6 +134,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
130 134
131 public void RegionLoaded(Scene scene) 135 public void RegionLoaded(Scene scene)
132 { 136 {
137 m_UserProfileService = m_Scene.CommsManager.UserProfileCacheService;
138 if (m_UserProfileService != null)
139 m_log.Debug("[XXXX] Set m_UserProfileService in " + m_Scene.RegionInfo.RegionName);
140
133 if (!m_Enabled) 141 if (!m_Enabled)
134 return; 142 return;
135 143
@@ -273,7 +281,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
273 return m_RemoteConnector.DeleteItem(item.Owner.ToString(), item, sessionID); 281 return m_RemoteConnector.DeleteItem(item.Owner.ToString(), item, sessionID);
274 } 282 }
275 283
276 public override InventoryItemBase QueryItem(InventoryItemBase item) 284 public override InventoryItemBase GetItem(InventoryItemBase item)
277 { 285 {
278 if (item == null) 286 if (item == null)
279 return null; 287 return null;
@@ -282,7 +290,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
282 return m_RemoteConnector.QueryItem(item.Owner.ToString(), item, sessionID); 290 return m_RemoteConnector.QueryItem(item.Owner.ToString(), item, sessionID);
283 } 291 }
284 292
285 public override InventoryFolderBase QueryFolder(InventoryFolderBase folder) 293 public override InventoryFolderBase GetFolder(InventoryFolderBase folder)
286 { 294 {
287 if (folder == null) 295 if (folder == null)
288 return null; 296 return null;
@@ -296,25 +304,39 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
296 return false; 304 return false;
297 } 305 }
298 306
299 public override InventoryFolderBase GetRootFolder(UUID userID) 307 public override List<InventoryItemBase> GetActiveGestures(UUID userId)
300 { 308 {
301 return null; 309 return new List<InventoryItemBase>();
302 } 310 }
303 311
304 public override List<InventoryItemBase> GetActiveGestures(UUID userId) 312 public override int GetAssetPermissions(UUID userID, UUID assetID)
305 { 313 {
306 return new List<InventoryItemBase>(); 314 UUID sessionID = GetSessionID(userID);
315 return m_RemoteConnector.GetAssetPermissions(userID.ToString(), assetID, sessionID);
307 } 316 }
308 317
318
309 #endregion 319 #endregion
310 320
311 private UUID GetSessionID(UUID userID) 321 private UUID GetSessionID(UUID userID)
312 { 322 {
313 ScenePresence sp = m_Scene.GetScenePresence(userID); 323 if (m_Scene == null)
314 if (sp != null) 324 {
315 return sp.ControllingClient.SessionId; 325 m_log.Debug("[INVENTORY CONNECTOR]: OOPS! scene is null");
326 }
316 327
328 if (m_UserProfileService == null)
329 {
330 m_log.Debug("[INVENTORY CONNECTOR]: OOPS! UserProfileCacheService is null");
331 return UUID.Zero;
332 }
333
334 CachedUserInfo uinfo = m_UserProfileService.GetUserDetails(userID);
335 if (uinfo != null)
336 return uinfo.SessionID;
337 m_log.DebugFormat("[INVENTORY CONNECTOR]: user profile for {0} not found", userID);
317 return UUID.Zero; 338 return UUID.Zero;
339
318 } 340 }
319 341
320 } 342 }