aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorDiva Canto2010-07-14 06:57:56 -0700
committerDiva Canto2010-07-14 06:57:56 -0700
commit87fb19162ed0a7a66c576deda25717efa24029b2 (patch)
treeb2933e3a773b6ddb57f14a9a190862d3e1f64029 /OpenSim
parentRemoved some more debug messages. (diff)
downloadopensim-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.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs9
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.