diff options
author | Melanie Thielker | 2010-07-14 16:21:55 +0200 |
---|---|---|
committer | Diva Canto | 2010-07-14 10:22:56 -0700 |
commit | 67417f647876e32bc9464c5ec76740437cc49b46 (patch) | |
tree | 7a236b7a782873d8e3ee9ecf7e7d7f1f5f32ead0 /OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |
parent | Fix obvious bug in XInventoryService.GetFolderItems() which was preventing th... (diff) | |
download | opensim-SC-67417f647876e32bc9464c5ec76740437cc49b46.zip opensim-SC-67417f647876e32bc9464c5ec76740437cc49b46.tar.gz opensim-SC-67417f647876e32bc9464c5ec76740437cc49b46.tar.bz2 opensim-SC-67417f647876e32bc9464c5ec76740437cc49b46.tar.xz |
Fix a permissions issue
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index f7e46af..f96573d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -281,7 +281,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
281 | PermissionMask.Move | | 281 | PermissionMask.Move | |
282 | PermissionMask.Transfer) | 7; | 282 | PermissionMask.Transfer) | 7; |
283 | 283 | ||
284 | uint ownerMask = 0x7ffffff; | 284 | uint ownerMask = 0x7fffffff; |
285 | foreach (SceneObjectPart part in m_parts.Values) | 285 | foreach (SceneObjectPart part in m_parts.Values) |
286 | { | 286 | { |
287 | ownerMask &= part.OwnerMask; | 287 | ownerMask &= part.OwnerMask; |
@@ -295,12 +295,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
295 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) | 295 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) |
296 | perms &= ~(uint)PermissionMask.Transfer; | 296 | perms &= ~(uint)PermissionMask.Transfer; |
297 | 297 | ||
298 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) | 298 | // If root prim permissions are applied here, this would screw |
299 | perms &= ~((uint)PermissionMask.Modify >> 13); | 299 | // with in-inventory manipulation of the next owner perms |
300 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | 300 | // in a major way. So, let's move this to the give itself. |
301 | perms &= ~((uint)PermissionMask.Copy >> 13); | 301 | // Yes. I know. Evil. |
302 | if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | 302 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) |
303 | perms &= ~((uint)PermissionMask.Transfer >> 13); | 303 | // perms &= ~((uint)PermissionMask.Modify >> 13); |
304 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | ||
305 | // perms &= ~((uint)PermissionMask.Copy >> 13); | ||
306 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | ||
307 | // perms &= ~((uint)PermissionMask.Transfer >> 13); | ||
304 | 308 | ||
305 | return perms; | 309 | return perms; |
306 | } | 310 | } |