aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs4
-rw-r--r--OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs198
2 files changed, 187 insertions, 15 deletions
diff --git a/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs b/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs
index b1c6bcf..b5ae54a 100644
--- a/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs
@@ -108,14 +108,14 @@ namespace OpenSim.Server.Handlers.Presence
108 out info.RegionID)) 108 out info.RegionID))
109 return FailureResult(); 109 return FailureResult();
110 110
111 foreach (KeyValuePair<string, string> kvp in request) 111 foreach (KeyValuePair<string, object> kvp in request)
112 { 112 {
113 if (kvp.Key == "METHOD" || 113 if (kvp.Key == "METHOD" ||
114 kvp.Key == "PrincipalID" || 114 kvp.Key == "PrincipalID" ||
115 kvp.Key == "RegionID") 115 kvp.Key == "RegionID")
116 continue; 116 continue;
117 117
118 info.Data[kvp.Key] = kvp.Value; 118 info.Data[kvp.Key] = kvp.Value.ToString();
119 } 119 }
120 120
121 if (m_PresenceService.Report(info)) 121 if (m_PresenceService.Report(info))
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
index 6e1d657..aac1a83 100644
--- a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
+++ b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
@@ -96,19 +96,55 @@ namespace OpenSim.Services.Connectors
96 return bool.Parse(ret["RESULT"].ToString()); 96 return bool.Parse(ret["RESULT"].ToString());
97 } 97 }
98 98
99 public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) 99 public List<InventoryFolderBase> GetInventorySkeleton(UUID principalID)
100 { 100 {
101 return null; 101 Dictionary<string,object> ret = MakeRequest("GETINVENTORYSKELETON",
102 new Dictionary<string,object> {
103 { "PRINCIPAL", principalID.ToString() }
104 });
105
106 if (ret == null)
107 return null;
108
109 List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
110
111 foreach (Object o in ret.Values)
112 folders.Add(BuildFolder((Dictionary<string,object>)o));
113
114 return folders;
102 } 115 }
103 116
104 public InventoryFolderBase GetRootFolder(UUID principalID) 117 public InventoryFolderBase GetRootFolder(UUID principalID)
105 { 118 {
106 return null; 119 Dictionary<string,object> ret = MakeRequest("GETROOTFOLDER",
120 new Dictionary<string,object> {
121 { "PRINCIPAL", principalID.ToString() }
122 });
123
124 if (ret == null)
125 return null;
126
127 if (ret.Count == 0)
128 return null;
129
130 return BuildFolder(ret);
107 } 131 }
108 132
109 public InventoryFolderBase GetFolderForType(UUID principalID, AssetType type) 133 public InventoryFolderBase GetFolderForType(UUID principalID, AssetType type)
110 { 134 {
111 return null; 135 Dictionary<string,object> ret = MakeRequest("GETFOLDERFORTYPE",
136 new Dictionary<string,object> {
137 { "PRINCIPAL", principalID.ToString() },
138 { "TYPE", ((int)type).ToString() }
139 });
140
141 if (ret == null)
142 return null;
143
144 if (ret.Count == 0)
145 return null;
146
147 return BuildFolder(ret);
112 } 148 }
113 149
114 public InventoryCollection GetFolderContent(UUID principalID, UUID folderID) 150 public InventoryCollection GetFolderContent(UUID principalID, UUID folderID)
@@ -205,8 +241,28 @@ namespace OpenSim.Services.Connectors
205 241
206 public bool AddItem(InventoryItemBase item) 242 public bool AddItem(InventoryItemBase item)
207 { 243 {
208 Dictionary<string,object> ret = MakeRequest("CREATEUSERINVENTORY", 244 Dictionary<string,object> ret = MakeRequest("ADDITEM",
209 new Dictionary<string,object> { 245 new Dictionary<string,object> {
246 { "AssetID", item.AssetID.ToString() },
247 { "AssetType", item.AssetType.ToString() },
248 { "Name", item.Name.ToString() },
249 { "Owner", item.Owner.ToString() },
250 { "ID", item.ID.ToString() },
251 { "InvType", item.InvType.ToString() },
252 { "Folder", item.Folder.ToString() },
253 { "CreatorId", item.CreatorId.ToString() },
254 { "Description", item.Description.ToString() },
255 { "NextPermissions", item.NextPermissions.ToString() },
256 { "CurrentPermissions", item.CurrentPermissions.ToString() },
257 { "BasePermissions", item.BasePermissions.ToString() },
258 { "EveryOnePermissions", item.EveryOnePermissions.ToString() },
259 { "GroupPermissions", item.GroupPermissions.ToString() },
260 { "GroupID", item.GroupID.ToString() },
261 { "GroupOwned", item.GroupOwned.ToString() },
262 { "SalePrice", item.SalePrice.ToString() },
263 { "SaleType", item.SaleType.ToString() },
264 { "Flags", item.Flags.ToString() },
265 { "CreationDate", item.CreationDate.ToString() }
210 }); 266 });
211 267
212 if (ret == null) 268 if (ret == null)
@@ -217,8 +273,28 @@ namespace OpenSim.Services.Connectors
217 273
218 public bool UpdateItem(InventoryItemBase item) 274 public bool UpdateItem(InventoryItemBase item)
219 { 275 {
220 Dictionary<string,object> ret = MakeRequest("CREATEUSERINVENTORY", 276 Dictionary<string,object> ret = MakeRequest("UPDATEITEM",
221 new Dictionary<string,object> { 277 new Dictionary<string,object> {
278 { "AssetID", item.AssetID.ToString() },
279 { "AssetType", item.AssetType.ToString() },
280 { "Name", item.Name.ToString() },
281 { "Owner", item.Owner.ToString() },
282 { "ID", item.ID.ToString() },
283 { "InvType", item.InvType.ToString() },
284 { "Folder", item.Folder.ToString() },
285 { "CreatorId", item.CreatorId.ToString() },
286 { "Description", item.Description.ToString() },
287 { "NextPermissions", item.NextPermissions.ToString() },
288 { "CurrentPermissions", item.CurrentPermissions.ToString() },
289 { "BasePermissions", item.BasePermissions.ToString() },
290 { "EveryOnePermissions", item.EveryOnePermissions.ToString() },
291 { "GroupPermissions", item.GroupPermissions.ToString() },
292 { "GroupID", item.GroupID.ToString() },
293 { "GroupOwned", item.GroupOwned.ToString() },
294 { "SalePrice", item.SalePrice.ToString() },
295 { "SaleType", item.SaleType.ToString() },
296 { "Flags", item.Flags.ToString() },
297 { "CreationDate", item.CreationDate.ToString() }
222 }); 298 });
223 299
224 if (ret == null) 300 if (ret == null)
@@ -227,9 +303,28 @@ namespace OpenSim.Services.Connectors
227 return bool.Parse(ret["RESULT"].ToString()); 303 return bool.Parse(ret["RESULT"].ToString());
228 } 304 }
229 305
230 public bool MoveItems(UUID ownerID, List<InventoryItemBase> items) 306 public bool MoveItems(UUID principalID, List<InventoryItemBase> items)
231 { 307 {
232 return false; 308 List<string> idlist = new List<string>();
309 List<string> destlist = new List<string>();
310
311 foreach (InventoryItemBase item in items)
312 {
313 idlist.Add(item.ID.ToString());
314 destlist.Add(item.Folder.ToString());
315 }
316
317 Dictionary<string,object> ret = MakeRequest("MOVEITEMS",
318 new Dictionary<string,object> {
319 { "PrincipalID", principalID.ToString() },
320 { "IDLIST", idlist },
321 { "DESTLIST", destlist }
322 });
323
324 if (ret == null)
325 return false;
326
327 return bool.Parse(ret["RESULT"].ToString());
233 } 328 }
234 329
235 public bool DeleteItems(UUID principalID, List<UUID> itemIDs) 330 public bool DeleteItems(UUID principalID, List<UUID> itemIDs)
@@ -253,17 +348,52 @@ namespace OpenSim.Services.Connectors
253 348
254 public InventoryItemBase GetItem(InventoryItemBase item) 349 public InventoryItemBase GetItem(InventoryItemBase item)
255 { 350 {
256 return null; 351 Dictionary<string,object> ret = MakeRequest("GETITEM",
352 new Dictionary<string,object> {
353 { "ID", item.ID.ToString() }
354 });
355
356 if (ret == null)
357 return null;
358
359 if (ret.Count == 0)
360 return null;
361
362 return BuildItem(ret);
257 } 363 }
258 364
259 public InventoryFolderBase GetFolder(InventoryFolderBase folder) 365 public InventoryFolderBase GetFolder(InventoryFolderBase folder)
260 { 366 {
261 return null; 367 Dictionary<string,object> ret = MakeRequest("GETFOLDER",
368 new Dictionary<string,object> {
369 { "ID", folder.ID.ToString() }
370 });
371
372 if (ret == null)
373 return null;
374
375 if (ret.Count == 0)
376 return null;
377
378 return BuildFolder(ret);
262 } 379 }
263 380
264 public List<InventoryItemBase> GetActiveGestures(UUID userId) 381 public List<InventoryItemBase> GetActiveGestures(UUID principalID)
265 { 382 {
266 return null; 383 Dictionary<string,object> ret = MakeRequest("GETACTIVEGESTURES",
384 new Dictionary<string,object> {
385 { "PRINCIPAL", principalID.ToString() }
386 });
387
388 if (ret == null)
389 return null;
390
391 List<InventoryItemBase> items = new List<InventoryItemBase>();
392
393 foreach (Object o in ret.Values)
394 items.Add(BuildItem((Dictionary<string,object>)o));
395
396 return items;
267 } 397 }
268 398
269 public int GetAssetPermissions(UUID principalID, UUID assetID) 399 public int GetAssetPermissions(UUID principalID, UUID assetID)
@@ -275,7 +405,7 @@ namespace OpenSim.Services.Connectors
275 }); 405 });
276 406
277 if (ret == null) 407 if (ret == null)
278 return false; 408 return 0;
279 409
280 return int.Parse(ret["RESULT"].ToString()); 410 return int.Parse(ret["RESULT"].ToString());
281 } 411 }
@@ -313,5 +443,47 @@ namespace OpenSim.Services.Connectors
313 443
314 return replyData; 444 return replyData;
315 } 445 }
446
447 InventoryFolderBase BuildFolder(Dictionary<string,object> data)
448 {
449 InventoryFolderBase folder = new InventoryFolderBase();
450
451 folder.ParentID = new UUID(data["ParentID"].ToString());
452 folder.Type = short.Parse(data["Type"].ToString());
453 folder.Version = ushort.Parse(data["Version"].ToString());
454 folder.Name = data["Name"].ToString();
455 folder.Owner = new UUID(data["Owner"].ToString());
456 folder.ID = new UUID(data["ID"].ToString());
457
458 return folder;
459 }
460
461 InventoryItemBase BuildItem(Dictionary<string,object> data)
462 {
463 InventoryItemBase item = new InventoryItemBase();
464
465 item.AssetID = new UUID(data["AssetID"].ToString());
466 item.AssetType = int.Parse(data["AssetType"].ToString());
467 item.Name = data["Name"].ToString();
468 item.Owner = new UUID(data["Owner"].ToString());
469 item.ID = new UUID(data["ID"].ToString());
470 item.InvType = int.Parse(data["InvType"].ToString());
471 item.Folder = new UUID(data["Folder"].ToString());
472 item.CreatorId = data["CreatorId"].ToString();
473 item.Description = data["Description"].ToString();
474 item.NextPermissions = uint.Parse(data["NextPermissions"].ToString());
475 item.CurrentPermissions = uint.Parse(data["CurrentPermissions"].ToString());
476 item.BasePermissions = uint.Parse(data["BasePermissions"].ToString());
477 item.EveryOnePermissions = uint.Parse(data["EveryOnePermissions"].ToString());
478 item.GroupPermissions = uint.Parse(data["GroupPermissions"].ToString());
479 item.GroupID = new UUID(data["GroupID"].ToString());
480 item.GroupOwned = bool.Parse(data["GroupOwned"].ToString());
481 item.SalePrice = int.Parse(data["SalePrice"].ToString());
482 item.SaleType = byte.Parse(data["SaleType"].ToString());
483 item.Flags = uint.Parse(data["Flags"].ToString());
484 item.CreationDate = int.Parse(data["CreationDate"].ToString());
485
486 return item;
487 }
316 } 488 }
317} 489}