aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
diff options
context:
space:
mode:
authorMelanie Thielker2010-07-14 16:21:55 +0200
committerDiva Canto2010-07-14 10:22:56 -0700
commit67417f647876e32bc9464c5ec76740437cc49b46 (patch)
tree7a236b7a782873d8e3ee9ecf7e7d7f1f5f32ead0 /OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
parentFix obvious bug in XInventoryService.GetFolderItems() which was preventing th... (diff)
downloadopensim-SC_OLD-67417f647876e32bc9464c5ec76740437cc49b46.zip
opensim-SC_OLD-67417f647876e32bc9464c5ec76740437cc49b46.tar.gz
opensim-SC_OLD-67417f647876e32bc9464c5ec76740437cc49b46.tar.bz2
opensim-SC_OLD-67417f647876e32bc9464c5ec76740437cc49b46.tar.xz
Fix a permissions issue
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs18
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 }