diff options
author | Diva Canto | 2010-07-14 06:57:56 -0700 |
---|---|---|
committer | Diva Canto | 2010-07-14 06:57:56 -0700 |
commit | 87fb19162ed0a7a66c576deda25717efa24029b2 (patch) | |
tree | b2933e3a773b6ddb57f14a9a190862d3e1f64029 | |
parent | Removed some more debug messages. (diff) | |
download | opensim-SC_OLD-87fb19162ed0a7a66c576deda25717efa24029b2.zip opensim-SC_OLD-87fb19162ed0a7a66c576deda25717efa24029b2.tar.gz opensim-SC_OLD-87fb19162ed0a7a66c576deda25717efa24029b2.tar.bz2 opensim-SC_OLD-87fb19162ed0a7a66c576deda25717efa24029b2.tar.xz |
More on mantis #4869. This fixes the problem of objects showing up as no copy when they are copy-able. It works, but I have no idea what I'm doing.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 34461dc..daacdf0 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -276,6 +276,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
276 | { | 276 | { |
277 | if (UUID.Zero == transactionID) | 277 | if (UUID.Zero == transactionID) |
278 | { | 278 | { |
279 | m_log.DebugFormat("[XXX] UUID.Zero = transactionID"); | ||
279 | item.Name = itemUpd.Name; | 280 | item.Name = itemUpd.Name; |
280 | item.Description = itemUpd.Description; | 281 | item.Description = itemUpd.Description; |
281 | item.NextPermissions = itemUpd.NextPermissions & item.BasePermissions; | 282 | item.NextPermissions = itemUpd.NextPermissions & item.BasePermissions; |
@@ -302,6 +303,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
302 | } | 303 | } |
303 | else | 304 | else |
304 | { | 305 | { |
306 | m_log.DebugFormat("[XXX] UUID.Zero != transactionID"); | ||
305 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); | 307 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); |
306 | if (agentTransactions != null) | 308 | if (agentTransactions != null) |
307 | { | 309 | { |
@@ -386,6 +388,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
386 | 388 | ||
387 | if (Permissions.PropagatePermissions() && recipient != senderId) | 389 | if (Permissions.PropagatePermissions() && recipient != senderId) |
388 | { | 390 | { |
391 | m_log.Debug("[XXX] Permissions.PropagatePermissions()"); | ||
389 | // Trying to do this right this time. This is evil. If | 392 | // Trying to do this right this time. This is evil. If |
390 | // you believe in Good, go elsewhere. Vampires and other | 393 | // you believe in Good, go elsewhere. Vampires and other |
391 | // evil creatores only beyond this point. You have been | 394 | // evil creatores only beyond this point. You have been |
@@ -449,12 +452,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
449 | (uint)PermissionMask.Modify) != 0 ? | 452 | (uint)PermissionMask.Modify) != 0 ? |
450 | true : false; | 453 | true : false; |
451 | 454 | ||
455 | bool isRootCopy = (item.CurrentPermissions & | ||
456 | (uint)PermissionMask.Copy) != 0 ? | ||
457 | true : false; | ||
458 | |||
452 | // Mask the owner perms to the folded perms | 459 | // Mask the owner perms to the folded perms |
453 | ownerPerms &= foldedPerms; | 460 | ownerPerms &= foldedPerms; |
454 | 461 | ||
455 | // If the root was mod, let the mask reflect that | 462 | // If the root was mod, let the mask reflect that |
456 | if (isRootMod) | 463 | if (isRootMod) |
457 | ownerPerms |= (uint)PermissionMask.Modify; | 464 | ownerPerms |= (uint)PermissionMask.Modify; |
465 | if (isRootCopy) | ||
466 | ownerPerms |= (uint)PermissionMask.Copy; | ||
458 | } | 467 | } |
459 | 468 | ||
460 | // These will be applied to the root prim at next rez. | 469 | // These will be applied to the root prim at next rez. |