diff options
author | Justin Clark-Casey (justincc) | 2012-11-24 02:43:31 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-11-24 02:43:31 +0000 |
commit | 82690e138448ebac6456ab03dcca4b0a8a1cc57a (patch) | |
tree | 0b5de164235b49d9d66f09582b857cd129d68b96 /OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |
parent | minor: Add some currently commented out debug log lines for investigating iss... (diff) | |
download | opensim-SC_OLD-82690e138448ebac6456ab03dcca4b0a8a1cc57a.zip opensim-SC_OLD-82690e138448ebac6456ab03dcca4b0a8a1cc57a.tar.gz opensim-SC_OLD-82690e138448ebac6456ab03dcca4b0a8a1cc57a.tar.bz2 opensim-SC_OLD-82690e138448ebac6456ab03dcca4b0a8a1cc57a.tar.xz |
Fix bug where loading an OAR with a deeded parcel would always set the parcel owner ID to the estate owner even if the group UUID was present.
Aims to address http://opensimulator.org/mantis/view.php?id=6355
As part of this work, an incomplete IXGroupsData was added which currently only allows store/fetch/delete of group records
(i.e. no membership data etc)
This is subject to change and currently only an in-memory storage implementation exists for regression test purposes.
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 60bbf9b..c810242 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -552,19 +552,23 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
552 | 552 | ||
553 | // Validate User and Group UUID's | 553 | // Validate User and Group UUID's |
554 | 554 | ||
555 | if (!ResolveUserUuid(scene, parcel.OwnerID)) | 555 | if (parcel.IsGroupOwned) |
556 | parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner; | ||
557 | |||
558 | if (!ResolveGroupUuid(parcel.GroupID)) | ||
559 | { | 556 | { |
560 | // m_log.DebugFormat("[ARCHIVE READ REQUEST]: Could not find group {0}", parcel.GroupID); | 557 | if (!ResolveGroupUuid(parcel.GroupID)) |
561 | parcel.GroupID = UUID.Zero; | 558 | { |
562 | parcel.IsGroupOwned = false; | 559 | parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner; |
560 | parcel.GroupID = UUID.Zero; | ||
561 | parcel.IsGroupOwned = false; | ||
562 | } | ||
563 | } | ||
564 | else | ||
565 | { | ||
566 | if (!ResolveUserUuid(scene, parcel.OwnerID)) | ||
567 | parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner; | ||
568 | |||
569 | if (!ResolveGroupUuid(parcel.GroupID)) | ||
570 | parcel.GroupID = UUID.Zero; | ||
563 | } | 571 | } |
564 | // else | ||
565 | // { | ||
566 | // m_log.DebugFormat("[ARCHIVE READ REQUEST]: Found group {0}", parcel.GroupID); | ||
567 | // } | ||
568 | 572 | ||
569 | List<LandAccessEntry> accessList = new List<LandAccessEntry>(); | 573 | List<LandAccessEntry> accessList = new List<LandAccessEntry>(); |
570 | foreach (LandAccessEntry entry in parcel.ParcelAccessList) | 574 | foreach (LandAccessEntry entry in parcel.ParcelAccessList) |
@@ -576,8 +580,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
576 | parcel.ParcelAccessList = accessList; | 580 | parcel.ParcelAccessList = accessList; |
577 | 581 | ||
578 | // m_log.DebugFormat( | 582 | // m_log.DebugFormat( |
579 | // "[ARCHIVER]: Adding parcel {0}, local id {1}, area {2}", | 583 | // "[ARCHIVER]: Adding parcel {0}, local id {1}, owner {2}, group {3}, isGroupOwned {4}, area {5}", |
580 | // parcel.Name, parcel.LocalID, parcel.Area); | 584 | // parcel.Name, parcel.LocalID, parcel.OwnerID, parcel.GroupID, parcel.IsGroupOwned, parcel.Area); |
581 | 585 | ||
582 | landData.Add(parcel); | 586 | landData.Add(parcel); |
583 | } | 587 | } |