aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie Thielker2009-01-12 13:19:33 +0000
committerMelanie Thielker2009-01-12 13:19:33 +0000
commit2ba9dd7eeb88c3b07aae1f7e30b63d0841f2041c (patch)
tree367f915f543389b7a057e240b8852f342b116014 /OpenSim/Region
parenta little bit more work on LLFileTransfer.cs, from over the christmas/new year... (diff)
downloadopensim-SC-2ba9dd7eeb88c3b07aae1f7e30b63d0841f2041c.zip
opensim-SC-2ba9dd7eeb88c3b07aae1f7e30b63d0841f2041c.tar.gz
opensim-SC-2ba9dd7eeb88c3b07aae1f7e30b63d0841f2041c.tar.bz2
opensim-SC-2ba9dd7eeb88c3b07aae1f7e30b63d0841f2041c.tar.xz
Cause permissions on root prims to not override folded permissions anymore
Fix propagation of folded permissions from object inventory to agent inventory.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index a8387c4..750b5b9 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -502,8 +502,8 @@ namespace OpenSim.Region.Environment.Scenes
502 itemCopy.CurrentPermissions = itemCopy.BasePermissions; 502 itemCopy.CurrentPermissions = itemCopy.BasePermissions;
503 if ((item.CurrentPermissions & 8) != 0) // Propagate slam bit 503 if ((item.CurrentPermissions & 8) != 0) // Propagate slam bit
504 { 504 {
505 itemCopy.CurrentPermissions = item.NextPermissions; 505 itemCopy.BasePermissions &= item.NextPermissions;
506 itemCopy.BasePermissions = itemCopy.CurrentPermissions; 506 itemCopy.CurrentPermissions = itemCopy.BasePermissions;
507 itemCopy.CurrentPermissions |= 8; 507 itemCopy.CurrentPermissions |= 8;
508 } 508 }
509 509
@@ -1091,8 +1091,12 @@ namespace OpenSim.Region.Environment.Scenes
1091 1091
1092 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) 1092 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
1093 { 1093 {
1094 agentItem.BasePermissions = taskItem.NextPermissions; 1094 if (taskItem.InvType == 6)
1095 agentItem.CurrentPermissions = taskItem.NextPermissions | 8; 1095 agentItem.BasePermissions = taskItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13);
1096 else
1097 agentItem.BasePermissions = taskItem.BasePermissions;
1098 agentItem.BasePermissions &= taskItem.NextPermissions;
1099 agentItem.CurrentPermissions = agentItem.BasePermissions | 8;
1096 agentItem.NextPermissions = taskItem.NextPermissions; 1100 agentItem.NextPermissions = taskItem.NextPermissions;
1097 agentItem.EveryOnePermissions = taskItem.EveryonePermissions & taskItem.NextPermissions; 1101 agentItem.EveryOnePermissions = taskItem.EveryonePermissions & taskItem.NextPermissions;
1098 agentItem.GroupPermissions = taskItem.GroupPermissions & taskItem.NextPermissions; 1102 agentItem.GroupPermissions = taskItem.GroupPermissions & taskItem.NextPermissions;
@@ -1982,6 +1986,8 @@ namespace OpenSim.Region.Environment.Scenes
1982 item.NextPermissions = objectGroup.RootPart.NextOwnerMask; 1986 item.NextPermissions = objectGroup.RootPart.NextOwnerMask;
1983 item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask; 1987 item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask;
1984 item.GroupPermissions = objectGroup.RootPart.GroupMask; 1988 item.GroupPermissions = objectGroup.RootPart.GroupMask;
1989
1990 item.CurrentPermissions |= 8; // Slam!
1985 } 1991 }
1986 1992
1987 // TODO: add the new fields (Flags, Sale info, etc) 1993 // TODO: add the new fields (Flags, Sale info, etc)