aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/PermissionManager.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-04-30 16:52:12 +0000
committerTeravus Ovares2008-04-30 16:52:12 +0000
commitb70da6ac1955ada29e1cb4dbe9aeb915735ec686 (patch)
tree68f6f5f3e7fe2b0fd9a8e0c9baf2dbfafeb90882 /OpenSim/Region/Environment/PermissionManager.cs
parent* Deal with a situation where the new fields in the inventory store are null ... (diff)
downloadopensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.zip
opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.gz
opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.bz2
opensim-SC-b70da6ac1955ada29e1cb4dbe9aeb915735ec686.tar.xz
* Patch by Melanie. Implements proper objectflags on child objects. Thanks Melanie!
RE: 0001079: r4387. touch() event does not fire when touch script is in root prim and child prims are touched
Diffstat (limited to 'OpenSim/Region/Environment/PermissionManager.cs')
-rw-r--r--OpenSim/Region/Environment/PermissionManager.cs27
1 files changed, 10 insertions, 17 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs
index 5658be7..fd8387b 100644
--- a/OpenSim/Region/Environment/PermissionManager.cs
+++ b/OpenSim/Region/Environment/PermissionManager.cs
@@ -226,21 +226,14 @@ namespace OpenSim.Region.Environment
226 // Outside of this method, they should never be added to objectflags! 226 // Outside of this method, they should never be added to objectflags!
227 // -teravus 227 // -teravus
228 228
229 if (!m_scene.Entities.ContainsKey(objID)) 229 SceneObjectPart task=m_scene.GetSceneObjectPart(objID);
230 { 230
231 return 0; 231 // this shouldn't ever happen.. return no permissions/objectflags.
232 } 232 if (task == null)
233 233 return (uint)0;
234 // If it's not an object, we cant edit it.
235 if (!(m_scene.Entities[objID] is SceneObjectGroup))
236 {
237 return 0;
238 }
239
240 SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[objID];
241 LLUUID objectOwner = task.OwnerID;
242 234
243 uint objflags = task.RootPart.ObjectFlags; 235 uint objflags = task.GetEffectiveObjectFlags();
236 LLUUID objectOwner = task.OwnerID;
244 237
245 238
246 // Remove any of the objectFlags that are temporary. These will get added back if appropriate 239 // Remove any of the objectFlags that are temporary. These will get added back if appropriate
@@ -257,14 +250,14 @@ namespace OpenSim.Region.Environment
257 250
258 // Creating the three ObjectFlags options for this method to choose from. 251 // Creating the three ObjectFlags options for this method to choose from.
259 // Customize the OwnerMask 252 // Customize the OwnerMask
260 uint objectOwnerMask = ApplyObjectModifyMasks(task.RootPart.OwnerMask, objflags); 253 uint objectOwnerMask = ApplyObjectModifyMasks(task.OwnerMask, objflags);
261 objectOwnerMask |= (uint)LLObject.ObjectFlags.ObjectYouOwner; 254 objectOwnerMask |= (uint)LLObject.ObjectFlags.ObjectYouOwner;
262 255
263 // Customize the GroupMask 256 // Customize the GroupMask
264 uint objectGroupMask = ApplyObjectModifyMasks(task.RootPart.GroupMask, objflags); 257 uint objectGroupMask = ApplyObjectModifyMasks(task.GroupMask, objflags);
265 258
266 // Customize the EveryoneMask 259 // Customize the EveryoneMask
267 uint objectEveryoneMask = ApplyObjectModifyMasks(task.RootPart.EveryoneMask, objflags); 260 uint objectEveryoneMask = ApplyObjectModifyMasks(task.EveryoneMask, objflags);
268 261
269 262
270 // Hack to allow collaboration until Groups and Group Permissions are implemented 263 // Hack to allow collaboration until Groups and Group Permissions are implemented