diff options
author | Melanie Thielker | 2010-06-28 01:29:30 +0200 |
---|---|---|
committer | Melanie Thielker | 2010-06-28 01:29:30 +0200 |
commit | d570cffa39e9ca6417ebd1c05cbdfea1d3beabd2 (patch) | |
tree | 3e56a7643960d7057780d490c593315733ae1896 /OpenSim/Region/Framework | |
parent | Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/ca... (diff) | |
download | opensim-SC_OLD-d570cffa39e9ca6417ebd1c05cbdfea1d3beabd2.zip opensim-SC_OLD-d570cffa39e9ca6417ebd1c05cbdfea1d3beabd2.tar.gz opensim-SC_OLD-d570cffa39e9ca6417ebd1c05cbdfea1d3beabd2.tar.bz2 opensim-SC_OLD-d570cffa39e9ca6417ebd1c05cbdfea1d3beabd2.tar.xz |
Fix Copy on Ray, Drag Copy and other little things. Removed the wrong and
nonworking ownership assignment in SOG, which messed things up before.
No longer trust the client to send the ID of the person something is copied
as, since it allows to run a script with someone else's permissions. Properly
adjust inventory ownership and perms.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 18 |
2 files changed, 3 insertions, 17 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index dfcbc4c..69a909b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1851,7 +1851,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1851 | SceneObjectGroup copy = original.Copy(AgentID, GroupID, true); | 1851 | SceneObjectGroup copy = original.Copy(AgentID, GroupID, true); |
1852 | copy.AbsolutePosition = copy.AbsolutePosition + offset; | 1852 | copy.AbsolutePosition = copy.AbsolutePosition + offset; |
1853 | 1853 | ||
1854 | if (copy.OwnerID != AgentID) | 1854 | if (original.OwnerID != AgentID) |
1855 | { | 1855 | { |
1856 | copy.SetOwnerId(AgentID); | 1856 | copy.SetOwnerId(AgentID); |
1857 | copy.SetRootPartOwner(copy.RootPart, AgentID, GroupID); | 1857 | copy.SetRootPartOwner(copy.RootPart, AgentID, GroupID); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 7081ced..241295f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1781,7 +1781,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1781 | dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 1781 | dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); |
1782 | 1782 | ||
1783 | if (!userExposed) | 1783 | if (!userExposed) |
1784 | { | ||
1784 | dupe.RootPart.IsAttachment = previousAttachmentStatus; | 1785 | dupe.RootPart.IsAttachment = previousAttachmentStatus; |
1786 | } | ||
1785 | 1787 | ||
1786 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed); | 1788 | dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed); |
1787 | dupe.m_rootPart.LinkNum = m_rootPart.LinkNum; | 1789 | dupe.m_rootPart.LinkNum = m_rootPart.LinkNum; |
@@ -1806,16 +1808,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1806 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); | 1808 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); |
1807 | } | 1809 | } |
1808 | 1810 | ||
1809 | // Now we've made a copy that replaces this one, we need to | ||
1810 | // switch the owner to the person who did the copying | ||
1811 | // Second Life copies an object and duplicates the first one in it's place | ||
1812 | // So, we have to make a copy of this one, set it in it's place then set the owner on this one | ||
1813 | if (userExposed) | ||
1814 | { | ||
1815 | SetRootPartOwner(m_rootPart, cAgentID, cGroupID); | ||
1816 | m_rootPart.ScheduleFullUpdate(); | ||
1817 | } | ||
1818 | |||
1819 | List<SceneObjectPart> partList; | 1811 | List<SceneObjectPart> partList; |
1820 | 1812 | ||
1821 | lockPartsForRead(true); | 1813 | lockPartsForRead(true); |
@@ -1837,12 +1829,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1837 | SceneObjectPart newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed); | 1829 | SceneObjectPart newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed); |
1838 | 1830 | ||
1839 | newPart.LinkNum = part.LinkNum; | 1831 | newPart.LinkNum = part.LinkNum; |
1840 | |||
1841 | if (userExposed) | ||
1842 | { | ||
1843 | SetPartOwner(newPart, cAgentID, cGroupID); | ||
1844 | newPart.ScheduleFullUpdate(); | ||
1845 | } | ||
1846 | } | 1832 | } |
1847 | } | 1833 | } |
1848 | 1834 | ||