diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/PermissionManager.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 19 |
2 files changed, 20 insertions, 7 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index 6efa116..bcaa1bf 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -103,6 +103,12 @@ namespace OpenSim.Region.Environment | |||
103 | 103 | ||
104 | string reason = "Insufficient permission"; | 104 | string reason = "Insufficient permission"; |
105 | 105 | ||
106 | Land land = this.m_scene.LandManager.getLandObject(position.X, position.Y); | ||
107 | if ((land.landData.landFlags & ((int)Parcel.ParcelFlags.CreateObjects)) == (int)Parcel.ParcelFlags.CreateObjects) | ||
108 | permission = true; | ||
109 | |||
110 | //TODO: check for group rights | ||
111 | |||
106 | if (IsAdministrator(user)) | 112 | if (IsAdministrator(user)) |
107 | { | 113 | { |
108 | permission = true; | 114 | permission = true; |
@@ -361,4 +367,4 @@ namespace OpenSim.Region.Environment | |||
361 | 367 | ||
362 | #endregion | 368 | #endregion |
363 | } | 369 | } |
364 | } \ No newline at end of file | 370 | } |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index c1acde4..0cb17c0 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -589,11 +589,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
589 | group.SetPartDescription(description, primLocalID); | 589 | group.SetPartDescription(description, primLocalID); |
590 | } | 590 | } |
591 | 591 | ||
592 | public void UpdateExtraParam(uint primLocalID, ushort type, bool inUse, byte[] data) | 592 | public void UpdateExtraParam(LLUUID agentID, uint primLocalID, ushort type, bool inUse, byte[] data) |
593 | { | 593 | { |
594 | SceneObjectGroup group = GetGroupByPrim(primLocalID); | 594 | SceneObjectGroup group = GetGroupByPrim(primLocalID); |
595 | if (group != null) | 595 | if (this.m_parentScene.PermissionsMngr.CanEditObject(agentID, group.GetPartsFullID(primLocalID))) |
596 | group.UpdateExtraParam(primLocalID, type, inUse, data); | 596 | { |
597 | if (group != null) | ||
598 | group.UpdateExtraParam(primLocalID, type, inUse, data); | ||
599 | } | ||
597 | } | 600 | } |
598 | 601 | ||
599 | /// <summary> | 602 | /// <summary> |
@@ -601,11 +604,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
601 | /// </summary> | 604 | /// </summary> |
602 | /// <param name="primLocalID"></param> | 605 | /// <param name="primLocalID"></param> |
603 | /// <param name="shapeBlock"></param> | 606 | /// <param name="shapeBlock"></param> |
604 | public void UpdatePrimShape(uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock) | 607 | public void UpdatePrimShape(LLUUID agentID, uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock) |
605 | { | 608 | { |
606 | SceneObjectGroup group = GetGroupByPrim(primLocalID); | 609 | SceneObjectGroup group = GetGroupByPrim(primLocalID); |
607 | if (group != null) | 610 | if (this.m_parentScene.PermissionsMngr.CanEditObject(agentID, group.GetPartsFullID(primLocalID))) |
608 | group.UpdateShape(shapeBlock, primLocalID); | 611 | { |
612 | if (group != null) | ||
613 | group.UpdateShape(shapeBlock, primLocalID); | ||
614 | } | ||
609 | } | 615 | } |
610 | 616 | ||
611 | /// <summary> | 617 | /// <summary> |
@@ -753,3 +759,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
753 | } | 759 | } |
754 | } | 760 | } |
755 | 761 | ||
762 | |||