aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs16
1 files changed, 10 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs
index 5ce8985..1b2ee7d 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs
@@ -248,21 +248,25 @@ namespace OpenSim.Region.Environment.Scenes
248 PermissionMask.Move | 248 PermissionMask.Move |
249 PermissionMask.Transfer) | 7; 249 PermissionMask.Transfer) | 7;
250 250
251 uint ownerMask = 0x7ffffff;
251 foreach (SceneObjectPart part in m_parts.Values) 252 foreach (SceneObjectPart part in m_parts.Values)
253 {
254 ownerMask &= part.OwnerMask;
252 perms &= part.MaskEffectivePermissions(); 255 perms &= part.MaskEffectivePermissions();
256 }
253 257
254 if ((RootPart.OwnerMask & (uint)PermissionMask.Modify) == 0) 258 if (ownerMask & (uint)PermissionMask.Modify) == 0)
255 perms &= ~(uint)PermissionMask.Modify; 259 perms &= ~(uint)PermissionMask.Modify;
256 if ((RootPart.OwnerMask & (uint)PermissionMask.Copy) == 0) 260 if (ownerMask & (uint)PermissionMask.Copy) == 0)
257 perms &= ~(uint)PermissionMask.Copy; 261 perms &= ~(uint)PermissionMask.Copy;
258 if ((RootPart.OwnerMask & (uint)PermissionMask.Transfer) == 0) 262 if (ownerMask & (uint)PermissionMask.Transfer) == 0)
259 perms &= ~(uint)PermissionMask.Transfer; 263 perms &= ~(uint)PermissionMask.Transfer;
260 264
261 if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) 265 if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0)
262 perms &= ~((uint)PermissionMask.Modify >> 13); 266 perms &= ~((uint)PermissionMask.Modify >> 13);
263 if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) 267 if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0)
264 perms &= ~((uint)PermissionMask.Copy >> 13); 268 perms &= ~((uint)PermissionMask.Copy >> 13);
265 if ((RootPart.OwnerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) 269 if (ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0)
266 perms &= ~((uint)PermissionMask.Transfer >> 13); 270 perms &= ~((uint)PermissionMask.Transfer >> 13);
267 271
268 return perms; 272 return perms;