diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 894078d..946ed09 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -1332,6 +1332,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1332 | { | 1332 | { |
1333 | foreach (TaskInventoryItem item in m_items.Values) | 1333 | foreach (TaskInventoryItem item in m_items.Values) |
1334 | { | 1334 | { |
1335 | if(item.InvType == (sbyte)InventoryType.Landmark) | ||
1336 | continue; | ||
1335 | owner &= item.CurrentPermissions; | 1337 | owner &= item.CurrentPermissions; |
1336 | group &= item.GroupPermissions; | 1338 | group &= item.GroupPermissions; |
1337 | everyone &= item.EveryonePermissions; | 1339 | everyone &= item.EveryonePermissions; |
@@ -1346,6 +1348,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1346 | 1348 | ||
1347 | foreach (TaskInventoryItem item in m_items.Values) | 1349 | foreach (TaskInventoryItem item in m_items.Values) |
1348 | { | 1350 | { |
1351 | if(item.InvType == (sbyte)InventoryType.Landmark) | ||
1352 | continue; | ||
1353 | |||
1349 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Copy) == 0) | 1354 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Copy) == 0) |
1350 | mask &= ~((uint)PermissionMask.FoldedCopy); | 1355 | mask &= ~((uint)PermissionMask.FoldedCopy); |
1351 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Transfer) == 0) | 1356 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Transfer) == 0) |
@@ -1353,19 +1358,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1353 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Export) == 0) | 1358 | if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Export) == 0) |
1354 | mask &= ~((uint)PermissionMask.FoldedExport); | 1359 | mask &= ~((uint)PermissionMask.FoldedExport); |
1355 | 1360 | ||
1356 | // this breaks some SL legal use cases | ||
1357 | // there should be no folding from task inventory | ||
1358 | /* | ||
1359 | if (item.InvType == (int)InventoryType.Object) | ||
1360 | { | ||
1361 | if ((item.CurrentPermissions & ((uint)PermissionMask.FoldedCopy)) == 0) | ||
1362 | mask &= ~((uint)PermissionMask.FoldedCopy); | ||
1363 | if ((item.CurrentPermissions & ((uint)PermissionMask.FoldedTransfer)) == 0) | ||
1364 | mask &= ~((uint)PermissionMask.FoldedTransfer); | ||
1365 | if ((item.CurrentPermissions & (uint)PermissionMask.FoldedExport) == 0) | ||
1366 | mask &= ~((uint)PermissionMask.FoldedExport); | ||
1367 | } | ||
1368 | */ | ||
1369 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) | 1361 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) |
1370 | mask &= ~(uint)PermissionMask.Copy; | 1362 | mask &= ~(uint)PermissionMask.Copy; |
1371 | if ((item.CurrentPermissions & (uint)PermissionMask.Transfer) == 0) | 1363 | if ((item.CurrentPermissions & (uint)PermissionMask.Transfer) == 0) |
@@ -1380,24 +1372,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1380 | { | 1372 | { |
1381 | foreach (TaskInventoryItem item in m_items.Values) | 1373 | foreach (TaskInventoryItem item in m_items.Values) |
1382 | { | 1374 | { |
1383 | |||
1384 | // this breaks legal SL use cases | ||
1385 | // there should be no unfold into task inventory | ||
1386 | /* | ||
1387 | if (item.InvType == (int)InventoryType.Object && (item.CurrentPermissions & (uint)PermissionMask.FoldedMask) != 0) | ||
1388 | { | ||
1389 | // m_log.DebugFormat ( | ||
1390 | // "[SCENE OBJECT PART INVENTORY]: Applying next permissions {0} to {1} in {2} with current {3}, base {4}, everyone {5}", | ||
1391 | // item.NextPermissions, item.Name, m_part.Name, item.CurrentPermissions, item.BasePermissions, item.EveryonePermissions); | ||
1392 | |||
1393 | if ((item.CurrentPermissions & ((uint)PermissionMask.FoldedCopy)) == 0) | ||
1394 | item.CurrentPermissions &= ~(uint)PermissionMask.Copy; | ||
1395 | if ((item.CurrentPermissions & ((uint)PermissionMask.FoldedTransfer)) == 0) | ||
1396 | item.CurrentPermissions &= ~(uint)PermissionMask.Transfer; | ||
1397 | if ((item.CurrentPermissions & ((uint)PermissionMask.FoldedModify)) == 0) | ||
1398 | item.CurrentPermissions &= ~(uint)PermissionMask.Modify; | ||
1399 | } | ||
1400 | */ | ||
1401 | item.CurrentPermissions &= item.NextPermissions; | 1375 | item.CurrentPermissions &= item.NextPermissions; |
1402 | item.BasePermissions &= item.NextPermissions; | 1376 | item.BasePermissions &= item.NextPermissions; |
1403 | item.EveryonePermissions &= item.NextPermissions; | 1377 | item.EveryonePermissions &= item.NextPermissions; |