diff options
Diffstat (limited to 'OpenSim/Region')
3 files changed, 8 insertions, 17 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index bce0610..d4f9c16 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -594,16 +594,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
594 | uint basePerms = effectivePerms & so.RootPart.NextOwnerMask; | 594 | uint basePerms = effectivePerms & so.RootPart.NextOwnerMask; |
595 | 595 | ||
596 | // rebuild folded perms since we don't have then on inworld objects | 596 | // rebuild folded perms since we don't have then on inworld objects |
597 | // possible existent ones where already unfolded | 597 | basePerms = PermissionsUtil.FixAndFoldPermissions(basePerms); |
598 | |||
599 | if((basePerms & (uint)PermissionMask.Copy) == 0) | ||
600 | basePerms |= (uint)PermissionMask.Transfer; | ||
601 | |||
602 | // unlock | ||
603 | basePerms |= (uint)PermissionMask.Move; | ||
604 | |||
605 | basePerms &= ~(uint)PermissionMask.FoldedMask; | ||
606 | basePerms |= ((basePerms >> (int)PermissionMask.FoldingShift) & (uint)PermissionMask.FoldedMask); | ||
607 | 598 | ||
608 | item.BasePermissions = basePerms; | 599 | item.BasePermissions = basePerms; |
609 | item.CurrentPermissions = item.BasePermissions; | 600 | item.CurrentPermissions = item.BasePermissions; |
@@ -1146,9 +1137,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
1146 | if ((item.BasePermissions & (uint)PermissionMask.FoldedMask) != 0) | 1137 | if ((item.BasePermissions & (uint)PermissionMask.FoldedMask) != 0) |
1147 | { | 1138 | { |
1148 | // We have permissions stored there so use them | 1139 | // We have permissions stored there so use them |
1149 | part.NextOwnerMask = ((item.BasePermissions & 7) << 13); | 1140 | part.NextOwnerMask = ((item.BasePermissions & (uint)PermissionMask.FoldedMask) << (int)PermissionMask.FoldingShift); |
1150 | if ((item.BasePermissions & (uint)PermissionMask.FoldedExport) != 0) | ||
1151 | part.NextOwnerMask |= (uint)PermissionMask.Export; | ||
1152 | part.NextOwnerMask |= (uint)PermissionMask.Move; | 1141 | part.NextOwnerMask |= (uint)PermissionMask.Move; |
1153 | } | 1142 | } |
1154 | else | 1143 | else |
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs index 84f33d1..af53aa3 100644 --- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs +++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | |||
@@ -210,9 +210,9 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
210 | 210 | ||
211 | PermissionsUtil.ApplyFoldedPermissions(perms, ref perms); | 211 | PermissionsUtil.ApplyFoldedPermissions(perms, ref perms); |
212 | 212 | ||
213 | item.BasePermissions = perms & part.NextOwnerMask; | 213 | perms &= part.NextOwnerMask; |
214 | 214 | ||
215 | // we need to rebuild folded here | 215 | item.BasePermissions = PermissionsUtil.FixAndFoldPermissions(perms); |
216 | 216 | ||
217 | item.CurrentPermissions = item.BasePermissions; | 217 | item.CurrentPermissions = item.BasePermissions; |
218 | item.NextPermissions = part.NextOwnerMask; | 218 | item.NextPermissions = part.NextOwnerMask; |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 5e19a8a..0549571 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1272,14 +1272,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
1272 | { | 1272 | { |
1273 | uint perms = agentItem.BasePermissions; | 1273 | uint perms = agentItem.BasePermissions; |
1274 | PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms ); | 1274 | PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms ); |
1275 | agentItem.BasePermissions = perms; | 1275 | // perms |= (uint)PermissionMask.Move; |
1276 | // agentItem.BasePermissions = perms; | ||
1277 | agentItem.BasePermissions = PermissionsUtil.FixAndFoldPermissions(perms); | ||
1276 | } | 1278 | } |
1277 | else | 1279 | else |
1278 | agentItem.BasePermissions &= taskItem.CurrentPermissions; | 1280 | agentItem.BasePermissions &= taskItem.CurrentPermissions; |
1279 | 1281 | ||
1280 | // always unlock | 1282 | // always unlock |
1281 | agentItem.BasePermissions |= (uint)PermissionMask.Move; | 1283 | agentItem.BasePermissions |= (uint)PermissionMask.Move; |
1282 | 1284 | ||
1283 | agentItem.CurrentPermissions = agentItem.BasePermissions; | 1285 | agentItem.CurrentPermissions = agentItem.BasePermissions; |
1284 | 1286 | ||
1285 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; | 1287 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |