| 122 |
{ |
{ |
| 123 |
InventoryCollection collection; |
InventoryCollection collection; |
| 124 |
InventoryFolder folder; |
InventoryFolder folder; |
| 125 |
UUID ownerID; |
|
| 126 |
if (inventories.TryGetValue(owner, out collection) && collection.Folders.TryGetValue(folderID, out folder) && |
if (inventories.TryGetValue(owner, out collection) && collection.Folders.TryGetValue(folderID, out folder)) |
|
Utils.OwnerMap.TryGetUUID(owner, out ownerID)) |
|
| 127 |
{ |
{ |
| 128 |
contents = new InventoryCollection(); |
contents = new InventoryCollection(); |
| 129 |
contents.UserID = ownerID; |
contents.UserID = collection.UserID; |
| 130 |
contents.Folders = new Dictionary<UUID, InventoryFolder>(); |
contents.Folders = new Dictionary<UUID, InventoryFolder>(); |
| 131 |
contents.Items = new Dictionary<UUID, InventoryItem>(); |
contents.Items = new Dictionary<UUID, InventoryItem>(); |
| 132 |
|
|
| 229 |
return ret; |
return ret; |
| 230 |
} |
} |
| 231 |
|
|
| 232 |
public StorageResponse TryCreateItem(InventoryItem item, UUID authToken) |
public StorageResponse TryCreateItem(Uri owner, InventoryItem item, UUID authToken) |
| 233 |
{ |
{ |
| 234 |
StorageResponse ret; |
StorageResponse ret; |
|
Uri owner; |
|
| 235 |
|
|
|
if (Utils.OwnerMap.TryGetUri(item.Owner, out owner)) |
|
|
{ |
|
| 236 |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
| 237 |
{ |
{ |
| 238 |
InventoryCollection collection; |
InventoryCollection collection; |
| 280 |
{ |
{ |
| 281 |
return StorageResponse.AuthNeeded; |
return StorageResponse.AuthNeeded; |
| 282 |
} |
} |
|
} |
|
|
else |
|
|
{ |
|
|
return StorageResponse.NotFound; |
|
|
} |
|
| 283 |
|
|
| 284 |
server.MetricsProvider.LogInventoryCreate(EXTENSION_NAME, ret, owner, false, authToken, DateTime.Now); |
server.MetricsProvider.LogInventoryCreate(EXTENSION_NAME, ret, owner, false, authToken, DateTime.Now); |
| 285 |
return ret; |
return ret; |
| 286 |
} |
} |
| 287 |
|
|
| 288 |
public StorageResponse TryCreateFolder(InventoryFolder folder, UUID authToken) |
public StorageResponse TryCreateFolder(Uri owner, InventoryFolder folder, UUID authToken) |
| 289 |
{ |
{ |
| 290 |
StorageResponse ret; |
StorageResponse ret; |
|
Uri owner; |
|
| 291 |
|
|
|
if (Utils.OwnerMap.TryGetUri(folder.Owner, out owner)) |
|
|
{ |
|
| 292 |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
| 293 |
{ |
{ |
| 294 |
InventoryCollection collection; |
InventoryCollection collection; |
| 329 |
{ |
{ |
| 330 |
ret = StorageResponse.AuthNeeded; |
ret = StorageResponse.AuthNeeded; |
| 331 |
} |
} |
|
} |
|
|
else |
|
|
{ |
|
|
ret = StorageResponse.NotFound; |
|
|
} |
|
| 332 |
|
|
| 333 |
server.MetricsProvider.LogInventoryCreate(EXTENSION_NAME, ret, owner, true, authToken, DateTime.Now); |
server.MetricsProvider.LogInventoryCreate(EXTENSION_NAME, ret, owner, true, authToken, DateTime.Now); |
| 334 |
return ret; |
return ret; |
| 335 |
} |
} |
| 336 |
|
|
| 337 |
public StorageResponse TryCreateInventory(InventoryFolder rootFolder, UUID authToken) |
public StorageResponse TryCreateInventory(Uri owner, InventoryFolder rootFolder, UUID authToken) |
| 338 |
{ |
{ |
| 339 |
StorageResponse ret; |
StorageResponse ret; |
|
Uri owner; |
|
| 340 |
|
|
|
if (Utils.OwnerMap.TryGetUri(rootFolder.Owner, out owner)) |
|
|
{ |
|
| 341 |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
if (server.AuthorizationProvider.IsInventoryWriteAuthorized(authToken, owner)) |
| 342 |
{ |
{ |
| 343 |
lock (inventories) |
lock (inventories) |
| 386 |
{ |
{ |
| 387 |
ret = StorageResponse.AuthNeeded; |
ret = StorageResponse.AuthNeeded; |
| 388 |
} |
} |
|
} |
|
|
else |
|
|
{ |
|
|
ret = StorageResponse.NotFound; |
|
|
} |
|
| 389 |
|
|
| 390 |
server.MetricsProvider.LogInventoryCreateInventory(EXTENSION_NAME, ret, authToken, DateTime.Now); |
server.MetricsProvider.LogInventoryCreateInventory(EXTENSION_NAME, ret, authToken, DateTime.Now); |
| 391 |
return ret; |
return ret; |
| 628 |
|
|
| 629 |
if (ownerID != UUID.Zero && owner != null) |
if (ownerID != UUID.Zero && owner != null) |
| 630 |
{ |
{ |
|
// Add a mapping between the UUID and Uri for this owner |
|
|
Utils.OwnerMap.Add(ownerID, owner); |
|
|
|
|
| 631 |
// Initialize the active gestures list for this agent |
// Initialize the active gestures list for this agent |
| 632 |
activeGestures.Add(owner, new List<InventoryItem>()); |
activeGestures.Add(owner, new List<InventoryItem>()); |
| 633 |
|
|
| 669 |
parent.Children[invItem.ID] = invItem; |
parent.Children[invItem.ID] = invItem; |
| 670 |
|
|
| 671 |
// Add active gestures to our list |
// Add active gestures to our list |
| 672 |
if (invItem.InvType == (int)InventoryType.Gesture && invItem.Flags == 1) |
if (invItem.InvType == (int)InventoryType.Gesture && invItem.Flags != 0) |
| 673 |
activeGestures[owner].Add(invItem); |
activeGestures[owner].Add(invItem); |
| 674 |
} |
} |
| 675 |
|
|