aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Permissions.cs14
2 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index 2d62b50..e611897 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -183,8 +183,7 @@ namespace OpenSim.Region.Framework.Scenes
183 part.SendFullUpdate(remoteClient); 183 part.SendFullUpdate(remoteClient);
184 184
185 // A prim is only tainted if it's allowed to be edited by the person clicking it. 185 // A prim is only tainted if it's allowed to be edited by the person clicking it.
186 if (Permissions.CanEditObject(sog.UUID, remoteClient.AgentId) 186 if (Permissions.CanChangeSelectedState(sog.UUID, (ScenePresence)remoteClient.SceneAgent))
187 || Permissions.CanMoveObject(sog.UUID, remoteClient.AgentId))
188 { 187 {
189 part.IsSelected = true; 188 part.IsSelected = true;
190 EventManager.TriggerParcelPrimCountTainted(); 189 EventManager.TriggerParcelPrimCountTainted();
@@ -250,8 +249,7 @@ namespace OpenSim.Region.Framework.Scenes
250 // handled by group, but by prim. Legacy cruft. 249 // handled by group, but by prim. Legacy cruft.
251 // TODO: Make selection flagging per prim! 250 // TODO: Make selection flagging per prim!
252 // 251 //
253 if (Permissions.CanEditObject(part.ParentGroup.UUID, remoteClient.AgentId) 252 if (Permissions.CanChangeSelectedState(part.ParentGroup.UUID, (ScenePresence)remoteClient.SceneAgent))
254 || Permissions.CanMoveObject(part.ParentGroup.UUID, remoteClient.AgentId))
255 { 253 {
256 part.IsSelected = false; 254 part.IsSelected = false;
257 if (!part.ParentGroup.IsAttachment && oldgprSelect != part.ParentGroup.IsSelected) 255 if (!part.ParentGroup.IsAttachment && oldgprSelect != part.ParentGroup.IsSelected)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index e045c43..8f32b03 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -404,6 +404,20 @@ namespace OpenSim.Region.Framework.Scenes
404 404
405 #endregion 405 #endregion
406 406
407 #region persence EDIT or MOVE OBJECT
408 private const uint CANSELECTMASK = (uint)(
409 PrimFlags.ObjectMove |
410 PrimFlags.ObjectModify |
411 PrimFlags.ObjectOwnerModify
412 );
413
414 public bool CanChangeSelectedState(UUID objectID, ScenePresence sp)
415 {
416 uint perms = GenerateClientFlags(sp , objectID);
417 return (perms & CANSELECTMASK) != 0;
418 }
419
420 #endregion
407 #region EDIT OBJECT 421 #region EDIT OBJECT
408 public bool CanEditObject(UUID objectID, UUID editorID) 422 public bool CanEditObject(UUID objectID, UUID editorID)
409 { 423 {