diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 22 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs | 26 |
2 files changed, 42 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index a1629fb..fe87350 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -160,10 +160,22 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
160 | private IAssetService m_assetService = null; | 160 | private IAssetService m_assetService = null; |
161 | 161 | ||
162 | 162 | ||
163 | private UUID m_defaultUser; | ||
164 | |||
163 | public ArchiveReadRequest(Scene scene, string loadPath, Guid requestId, Dictionary<string,object>options) | 165 | public ArchiveReadRequest(Scene scene, string loadPath, Guid requestId, Dictionary<string,object>options) |
164 | { | 166 | { |
165 | m_rootScene = scene; | 167 | m_rootScene = scene; |
166 | 168 | ||
169 | if (options.ContainsKey("default-user")) | ||
170 | { | ||
171 | m_defaultUser = (UUID)options["default-user"]; | ||
172 | m_log.InfoFormat("Using User {0} as default user", m_defaultUser.ToString()); | ||
173 | } | ||
174 | else | ||
175 | { | ||
176 | m_defaultUser = scene.RegionInfo.EstateSettings.EstateOwner; | ||
177 | } | ||
178 | |||
167 | m_loadPath = loadPath; | 179 | m_loadPath = loadPath; |
168 | try | 180 | try |
169 | { | 181 | { |
@@ -562,16 +574,16 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
562 | if (string.IsNullOrEmpty(part.CreatorData)) | 574 | if (string.IsNullOrEmpty(part.CreatorData)) |
563 | { | 575 | { |
564 | if (!ResolveUserUuid(scene, part.CreatorID)) | 576 | if (!ResolveUserUuid(scene, part.CreatorID)) |
565 | part.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; | 577 | part.CreatorID = m_defaultUser; |
566 | } | 578 | } |
567 | if (UserManager != null) | 579 | if (UserManager != null) |
568 | UserManager.AddUser(part.CreatorID, part.CreatorData); | 580 | UserManager.AddUser(part.CreatorID, part.CreatorData); |
569 | 581 | ||
570 | if (!(ResolveUserUuid(scene, part.OwnerID) || ResolveGroupUuid(part.OwnerID))) | 582 | if (!(ResolveUserUuid(scene, part.OwnerID) || ResolveGroupUuid(part.OwnerID))) |
571 | part.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; | 583 | part.OwnerID = m_defaultUser; |
572 | 584 | ||
573 | if (!(ResolveUserUuid(scene, part.LastOwnerID) || ResolveGroupUuid(part.LastOwnerID))) | 585 | if (!(ResolveUserUuid(scene, part.LastOwnerID) || ResolveGroupUuid(part.LastOwnerID))) |
574 | part.LastOwnerID = scene.RegionInfo.EstateSettings.EstateOwner; | 586 | part.LastOwnerID = m_defaultUser; |
575 | 587 | ||
576 | if (!ResolveGroupUuid(part.GroupID)) | 588 | if (!ResolveGroupUuid(part.GroupID)) |
577 | part.GroupID = UUID.Zero; | 589 | part.GroupID = UUID.Zero; |
@@ -590,13 +602,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
590 | { | 602 | { |
591 | if (!(ResolveUserUuid(scene, kvp.Value.OwnerID) || ResolveGroupUuid(kvp.Value.OwnerID))) | 603 | if (!(ResolveUserUuid(scene, kvp.Value.OwnerID) || ResolveGroupUuid(kvp.Value.OwnerID))) |
592 | { | 604 | { |
593 | kvp.Value.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; | 605 | kvp.Value.OwnerID = m_defaultUser; |
594 | } | 606 | } |
595 | 607 | ||
596 | if (string.IsNullOrEmpty(kvp.Value.CreatorData)) | 608 | if (string.IsNullOrEmpty(kvp.Value.CreatorData)) |
597 | { | 609 | { |
598 | if (!ResolveUserUuid(scene, kvp.Value.CreatorID)) | 610 | if (!ResolveUserUuid(scene, kvp.Value.CreatorID)) |
599 | kvp.Value.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; | 611 | kvp.Value.CreatorID = m_defaultUser; |
600 | } | 612 | } |
601 | 613 | ||
602 | if (UserManager != null) | 614 | if (UserManager != null) |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs index 2b2da6f..6a09caf 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs | |||
@@ -108,6 +108,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
108 | bool forceParcels = false; | 108 | bool forceParcels = false; |
109 | bool noObjects = false; | 109 | bool noObjects = false; |
110 | Vector3 displacement = new Vector3(0f, 0f, 0f); | 110 | Vector3 displacement = new Vector3(0f, 0f, 0f); |
111 | String defaultUser = ""; | ||
111 | float rotation = 0f; | 112 | float rotation = 0f; |
112 | Vector3 rotationCenter = new Vector3(Constants.RegionSize / 2f, Constants.RegionSize / 2f, 0); | 113 | Vector3 rotationCenter = new Vector3(Constants.RegionSize / 2f, Constants.RegionSize / 2f, 0); |
113 | 114 | ||
@@ -119,6 +120,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
119 | options.Add("force-parcels", delegate (string v) { forceParcels = (v != null); }); | 120 | options.Add("force-parcels", delegate (string v) { forceParcels = (v != null); }); |
120 | options.Add("forceparcels", delegate (string v) { forceParcels = (v != null); }); // downward compatibility | 121 | options.Add("forceparcels", delegate (string v) { forceParcels = (v != null); }); // downward compatibility |
121 | options.Add("no-objects", delegate (string v) { noObjects = (v != null); }); | 122 | options.Add("no-objects", delegate (string v) { noObjects = (v != null); }); |
123 | options.Add("default-user=", delegate(string v) { defaultUser = (v == null) ? "" : v; }); | ||
122 | options.Add("displacement=", delegate (string v) { | 124 | options.Add("displacement=", delegate (string v) { |
123 | try | 125 | try |
124 | { | 126 | { |
@@ -131,7 +133,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
131 | return; | 133 | return; |
132 | } | 134 | } |
133 | }); | 135 | }); |
134 | options.Add("rotation=", delegate (string v) { | 136 | options.Add("rotation=", delegate(string v) |
137 | { | ||
135 | try | 138 | try |
136 | { | 139 | { |
137 | rotation = v == null ? 0f : float.Parse(v); | 140 | rotation = v == null ? 0f : float.Parse(v); |
@@ -181,6 +184,27 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
181 | if (forceTerrain) archiveOptions.Add("force-terrain", null); | 184 | if (forceTerrain) archiveOptions.Add("force-terrain", null); |
182 | if (forceParcels) archiveOptions.Add("force-parcels", null); | 185 | if (forceParcels) archiveOptions.Add("force-parcels", null); |
183 | if (noObjects) archiveOptions.Add("no-objects", null); | 186 | if (noObjects) archiveOptions.Add("no-objects", null); |
187 | if (defaultUser != "") | ||
188 | { | ||
189 | UUID defaultUserUUID = UUID.Zero; | ||
190 | try | ||
191 | { | ||
192 | defaultUserUUID = Scene.UserManagementModule.GetUserIdByName(defaultUser); | ||
193 | } | ||
194 | catch | ||
195 | { | ||
196 | m_log.ErrorFormat("[ARCHIVER MODULE] default user must be in format \"First Last\"", defaultUser); | ||
197 | } | ||
198 | if (defaultUserUUID == UUID.Zero) | ||
199 | { | ||
200 | m_log.ErrorFormat("[ARCHIVER MODULE] cannot find specified default user {0}", defaultUser); | ||
201 | return; | ||
202 | } | ||
203 | else | ||
204 | { | ||
205 | archiveOptions.Add("default-user", defaultUserUUID); | ||
206 | } | ||
207 | } | ||
184 | archiveOptions.Add("displacement", displacement); | 208 | archiveOptions.Add("displacement", displacement); |
185 | archiveOptions.Add("rotation", rotation); | 209 | archiveOptions.Add("rotation", rotation); |
186 | archiveOptions.Add("rotation-center", rotationCenter); | 210 | archiveOptions.Add("rotation-center", rotationCenter); |