aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Permissions.cs12
2 files changed, 10 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 473589a..ad913f7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2126,6 +2126,8 @@ namespace OpenSim.Region.Framework.Scenes
2126 List<SceneObjectGroup> deleteGroups = new List<SceneObjectGroup>(); 2126 List<SceneObjectGroup> deleteGroups = new List<SceneObjectGroup>();
2127 List<SceneObjectGroup> takeGroups = new List<SceneObjectGroup>(); 2127 List<SceneObjectGroup> takeGroups = new List<SceneObjectGroup>();
2128 2128
2129 ScenePresence sp = remoteClient.SceneAgent as ScenePresence;
2130
2129 // Start with true for both, then remove the flags if objects 2131 // Start with true for both, then remove the flags if objects
2130 // that we can't derez are part of the selection 2132 // that we can't derez are part of the selection
2131 bool permissionToTake = true; 2133 bool permissionToTake = true;
@@ -2180,14 +2182,14 @@ namespace OpenSim.Region.Framework.Scenes
2180 { 2182 {
2181 if (action == DeRezAction.TakeCopy) 2183 if (action == DeRezAction.TakeCopy)
2182 { 2184 {
2183 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId)) 2185 if (!Permissions.CanTakeCopyObject(grp, sp))
2184 permissionToTakeCopy = false; 2186 permissionToTakeCopy = false;
2185 } 2187 }
2186 else 2188 else
2187 { 2189 {
2188 permissionToTakeCopy = false; 2190 permissionToTakeCopy = false;
2189 } 2191 }
2190 if (!Permissions.CanTakeObject(grp.UUID, remoteClient.AgentId)) 2192 if (!Permissions.CanTakeObject(grp, sp))
2191 permissionToTake = false; 2193 permissionToTake = false;
2192 2194
2193 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId)) 2195 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId))
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index e42d4c2..8194606 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -44,9 +44,9 @@ namespace OpenSim.Region.Framework.Scenes
44 public delegate bool RezObjectHandler(int objectCount, UUID owner, Vector3 objectPosition, Scene scene); 44 public delegate bool RezObjectHandler(int objectCount, UUID owner, Vector3 objectPosition, Scene scene);
45 public delegate bool DeleteObjectHandler(UUID objectID, UUID deleter, Scene scene); 45 public delegate bool DeleteObjectHandler(UUID objectID, UUID deleter, Scene scene);
46 public delegate bool TransferObjectHandler(UUID objectID, UUID recipient, Scene scene); 46 public delegate bool TransferObjectHandler(UUID objectID, UUID recipient, Scene scene);
47 public delegate bool TakeObjectHandler(UUID objectID, UUID stealer, Scene scene); 47 public delegate bool TakeObjectHandler(SceneObjectGroup sog, ScenePresence sp);
48 public delegate bool SellGroupObjectHandler(UUID userID, UUID groupID, Scene scene); 48 public delegate bool SellGroupObjectHandler(UUID userID, UUID groupID, Scene scene);
49 public delegate bool TakeCopyObjectHandler(UUID objectID, UUID userID, Scene inScene); 49 public delegate bool TakeCopyObjectHandler(SceneObjectGroup sog, ScenePresence sp);
50 public delegate bool DuplicateObjectHandler(int objectCount, UUID objectID, UUID owner, Scene scene, Vector3 objectPosition); 50 public delegate bool DuplicateObjectHandler(int objectCount, UUID objectID, UUID owner, Scene scene, Vector3 objectPosition);
51 public delegate bool EditObjectHandler(UUID objectID, UUID editorID, Scene scene); 51 public delegate bool EditObjectHandler(UUID objectID, UUID editorID, Scene scene);
52 public delegate bool EditObjectInventoryHandler(UUID objectID, UUID editorID, Scene scene); 52 public delegate bool EditObjectInventoryHandler(UUID objectID, UUID editorID, Scene scene);
@@ -300,7 +300,7 @@ namespace OpenSim.Region.Framework.Scenes
300 #endregion 300 #endregion
301 301
302 #region TAKE OBJECT 302 #region TAKE OBJECT
303 public bool CanTakeObject(UUID objectID, UUID AvatarTakingUUID) 303 public bool CanTakeObject(SceneObjectGroup sog, ScenePresence sp)
304 { 304 {
305 bool result = true; 305 bool result = true;
306 306
@@ -310,7 +310,7 @@ namespace OpenSim.Region.Framework.Scenes
310 Delegate[] list = handler.GetInvocationList(); 310 Delegate[] list = handler.GetInvocationList();
311 foreach (TakeObjectHandler h in list) 311 foreach (TakeObjectHandler h in list)
312 { 312 {
313 if (h(objectID, AvatarTakingUUID, m_scene) == false) 313 if (h(sog, sp) == false)
314 { 314 {
315 result = false; 315 result = false;
316 break; 316 break;
@@ -357,7 +357,7 @@ namespace OpenSim.Region.Framework.Scenes
357 357
358 358
359 #region TAKE COPY OBJECT 359 #region TAKE COPY OBJECT
360 public bool CanTakeCopyObject(UUID objectID, UUID userID) 360 public bool CanTakeCopyObject(SceneObjectGroup sog, ScenePresence sp)
361 { 361 {
362 bool result = true; 362 bool result = true;
363 363
@@ -367,7 +367,7 @@ namespace OpenSim.Region.Framework.Scenes
367 Delegate[] list = handler.GetInvocationList(); 367 Delegate[] list = handler.GetInvocationList();
368 foreach (TakeCopyObjectHandler h in list) 368 foreach (TakeCopyObjectHandler h in list)
369 { 369 {
370 if (h(objectID, userID, m_scene) == false) 370 if (h(sog, sp) == false)
371 { 371 {
372 result = false; 372 result = false;
373 break; 373 break;