diff options
author | Justin Clarke Casey | 2009-05-05 16:45:21 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-05-05 16:45:21 +0000 |
commit | f8e0653e73932bae20f483e0ce669f1623c6ff1e (patch) | |
tree | 9fc902fc17567755bad28f0f6d88b7089c0365e1 | |
parent | - moving banned check and public/private check to (diff) | |
download | opensim-SC-f8e0653e73932bae20f483e0ce669f1623c6ff1e.zip opensim-SC-f8e0653e73932bae20f483e0ce669f1623c6ff1e.tar.gz opensim-SC-f8e0653e73932bae20f483e0ce669f1623c6ff1e.tar.bz2 opensim-SC-f8e0653e73932bae20f483e0ce669f1623c6ff1e.tar.xz |
* If an item creator id contains an iar loaded name, create a temporary profile and hashed UUID to represent the user
Diffstat (limited to '')
8 files changed, 86 insertions, 86 deletions
diff --git a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs index 3ad137e..1059338 100644 --- a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs +++ b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs | |||
@@ -166,26 +166,10 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
166 | /// <param name="libraryRootFolder"></param> | 166 | /// <param name="libraryRootFolder"></param> |
167 | protected virtual void InitialiseStandaloneServices(LibraryRootFolder libraryRootFolder) | 167 | protected virtual void InitialiseStandaloneServices(LibraryRootFolder libraryRootFolder) |
168 | { | 168 | { |
169 | LocalInventoryService inventoryService = new LocalInventoryService(); | ||
170 | List<IInventoryDataPlugin> plugins | ||
171 | = DataPluginFactory.LoadDataPlugins<IInventoryDataPlugin>( | ||
172 | m_openSim.ConfigurationSettings.StandaloneInventoryPlugin, | ||
173 | m_openSim.ConfigurationSettings.StandaloneInventorySource); | ||
174 | |||
175 | foreach (IInventoryDataPlugin plugin in plugins) | ||
176 | { | ||
177 | // Using the OSP wrapper plugin for database plugins should be made configurable at some point | ||
178 | inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin)); | ||
179 | } | ||
180 | |||
181 | LocalBackEndServices backendService = new LocalBackEndServices(); | ||
182 | |||
183 | //LocalLoginService loginService = CreateLoginService(libraryRootFolder, inventoryService, userService, backendService); | ||
184 | |||
185 | m_commsManager | 169 | m_commsManager |
186 | = new CommunicationsLocal( | 170 | = new CommunicationsLocal( |
187 | m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, | 171 | m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, |
188 | inventoryService, backendService, libraryRootFolder, m_openSim.ConfigurationSettings.DumpAssetsToFile); | 172 | libraryRootFolder, m_openSim.ConfigurationSettings.DumpAssetsToFile); |
189 | 173 | ||
190 | CreateGridInfoService(); | 174 | CreateGridInfoService(); |
191 | } | 175 | } |
@@ -202,22 +186,7 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
202 | } | 186 | } |
203 | 187 | ||
204 | protected virtual void InitialiseHGStandaloneServices(LibraryRootFolder libraryRootFolder) | 188 | protected virtual void InitialiseHGStandaloneServices(LibraryRootFolder libraryRootFolder) |
205 | { | 189 | { |
206 | // Standalone mode | ||
207 | |||
208 | HGInventoryServiceClient inventoryService | ||
209 | = new HGInventoryServiceClient(m_openSim.NetServersInfo.InventoryURL, null, false); | ||
210 | List<IInventoryDataPlugin> plugins | ||
211 | = DataPluginFactory.LoadDataPlugins<IInventoryDataPlugin>( | ||
212 | m_openSim.ConfigurationSettings.StandaloneInventoryPlugin, | ||
213 | m_openSim.ConfigurationSettings.StandaloneInventorySource); | ||
214 | |||
215 | foreach (IInventoryDataPlugin plugin in plugins) | ||
216 | { | ||
217 | // Using the OSP wrapper plugin should be made configurable at some point | ||
218 | inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin)); | ||
219 | } | ||
220 | |||
221 | HGGridServicesStandalone gridService | 190 | HGGridServicesStandalone gridService |
222 | = new HGGridServicesStandalone( | 191 | = new HGGridServicesStandalone( |
223 | m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, m_openSim.SceneManager); | 192 | m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, m_openSim.SceneManager); |
@@ -225,10 +194,9 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
225 | m_commsManager | 194 | m_commsManager |
226 | = new HGCommunicationsStandalone( | 195 | = new HGCommunicationsStandalone( |
227 | m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, | 196 | m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, |
228 | inventoryService, gridService, | 197 | gridService, |
229 | libraryRootFolder, m_openSim.ConfigurationSettings.DumpAssetsToFile); | 198 | libraryRootFolder, m_openSim.ConfigurationSettings.DumpAssetsToFile); |
230 | 199 | ||
231 | inventoryService.UserProfileCache = m_commsManager.UserProfileCacheService; | ||
232 | HGServices = gridService; | 200 | HGServices = gridService; |
233 | 201 | ||
234 | CreateGridInfoService(); | 202 | CreateGridInfoService(); |
diff --git a/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs b/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs index 3a692ae..95ef484 100644 --- a/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs +++ b/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs | |||
@@ -37,10 +37,12 @@ namespace OpenSim.Framework.Communications.Osp | |||
37 | public class OspInventoryWrapperPlugin : IInventoryDataPlugin | 37 | public class OspInventoryWrapperPlugin : IInventoryDataPlugin |
38 | { | 38 | { |
39 | protected IInventoryDataPlugin m_wrappedPlugin; | 39 | protected IInventoryDataPlugin m_wrappedPlugin; |
40 | protected CommunicationsManager m_commsManager; | ||
40 | 41 | ||
41 | public OspInventoryWrapperPlugin(IInventoryDataPlugin wrappedPlugin) | 42 | public OspInventoryWrapperPlugin(IInventoryDataPlugin wrappedPlugin, CommunicationsManager commsManager) |
42 | { | 43 | { |
43 | m_wrappedPlugin = wrappedPlugin; | 44 | m_wrappedPlugin = wrappedPlugin; |
45 | m_commsManager = commsManager; | ||
44 | } | 46 | } |
45 | 47 | ||
46 | public string Name { get { return "OspInventoryWrapperPlugin"; } } | 48 | public string Name { get { return "OspInventoryWrapperPlugin"; } } |
@@ -51,24 +53,23 @@ namespace OpenSim.Framework.Communications.Osp | |||
51 | 53 | ||
52 | public InventoryItemBase getInventoryItem(UUID item) | 54 | public InventoryItemBase getInventoryItem(UUID item) |
53 | { | 55 | { |
54 | return m_wrappedPlugin.getInventoryItem(item); | 56 | return PostProcessItem(m_wrappedPlugin.getInventoryItem(item)); |
55 | |||
56 | // TODO: Need to post process here | ||
57 | } | 57 | } |
58 | 58 | ||
59 | // XXX: Why on earth does this exist as it appears to duplicate getInventoryItem? | 59 | // XXX: Why on earth does this exist as it appears to duplicate getInventoryItem? |
60 | public InventoryItemBase queryInventoryItem(UUID item) | 60 | public InventoryItemBase queryInventoryItem(UUID item) |
61 | { | 61 | { |
62 | return m_wrappedPlugin.queryInventoryItem(item); | 62 | return PostProcessItem(m_wrappedPlugin.queryInventoryItem(item)); |
63 | |||
64 | // TODO: Need to post process here | ||
65 | } | 63 | } |
66 | 64 | ||
67 | public List<InventoryItemBase> getInventoryInFolder(UUID folderID) | 65 | public List<InventoryItemBase> getInventoryInFolder(UUID folderID) |
68 | { | 66 | { |
69 | return m_wrappedPlugin.getInventoryInFolder(folderID); | 67 | List<InventoryItemBase> items = m_wrappedPlugin.getInventoryInFolder(folderID); |
70 | 68 | ||
71 | // TODO: Need to post process here | 69 | foreach (InventoryItemBase item in items) |
70 | PostProcessItem(item); | ||
71 | |||
72 | return items; | ||
72 | } | 73 | } |
73 | 74 | ||
74 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) | 75 | public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) |
@@ -77,6 +78,12 @@ namespace OpenSim.Framework.Communications.Osp | |||
77 | 78 | ||
78 | // Presuming that no post processing is needed here as gestures don't refer to creator information (?) | 79 | // Presuming that no post processing is needed here as gestures don't refer to creator information (?) |
79 | } | 80 | } |
81 | |||
82 | protected InventoryItemBase PostProcessItem(InventoryItemBase item) | ||
83 | { | ||
84 | item.CreatorIdAsUuid = OspResolver.ResolveOspa(item.CreatorId, m_commsManager); | ||
85 | return item; | ||
86 | } | ||
80 | 87 | ||
81 | public List<InventoryFolderBase> getFolderHierarchy(UUID parentID) { return m_wrappedPlugin.getFolderHierarchy(parentID); } | 88 | public List<InventoryFolderBase> getFolderHierarchy(UUID parentID) { return m_wrappedPlugin.getFolderHierarchy(parentID); } |
82 | public List<InventoryFolderBase> getUserRootFolders(UUID user) { return m_wrappedPlugin.getUserRootFolders(user); } | 89 | public List<InventoryFolderBase> getUserRootFolders(UUID user) { return m_wrappedPlugin.getUserRootFolders(user); } |
diff --git a/OpenSim/Framework/Communications/Osp/OspResolver.cs b/OpenSim/Framework/Communications/Osp/OspResolver.cs index a62e1c0..579b3df 100644 --- a/OpenSim/Framework/Communications/Osp/OspResolver.cs +++ b/OpenSim/Framework/Communications/Osp/OspResolver.cs | |||
@@ -85,16 +85,15 @@ namespace OpenSim.Framework.Communications.Osp | |||
85 | /// <param name="ospa"></param> | 85 | /// <param name="ospa"></param> |
86 | /// <param name="commsManager"></param> | 86 | /// <param name="commsManager"></param> |
87 | /// <returns> | 87 | /// <returns> |
88 | /// A suitable internal OpenSim identifier. If the input string wasn't ospi data, then we simply | 88 | /// A suitable UUID for use in Second Life client communication. If the string was not a valid ospa, then UUID.Zero |
89 | /// return that same string. If the input string was ospi data but no valid profile information has been found, | 89 | /// is returned. |
90 | /// then returns null. | ||
91 | /// </returns> | 90 | /// </returns> |
92 | public static string ResolveOspa(string ospa, CommunicationsManager commsManager) | 91 | public static UUID ResolveOspa(string ospa, CommunicationsManager commsManager) |
93 | { | 92 | { |
94 | m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa); | 93 | m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa); |
95 | 94 | ||
96 | if (!ospa.StartsWith(OSPA_PREFIX)) | 95 | if (!ospa.StartsWith(OSPA_PREFIX)) |
97 | return ospa; | 96 | return UUID.Zero; |
98 | 97 | ||
99 | string ospaMeat = ospa.Substring(OSPA_PREFIX.Length); | 98 | string ospaMeat = ospa.Substring(OSPA_PREFIX.Length); |
100 | string[] ospaTuples = ospaMeat.Split(OSPA_TUPLE_SEPARATOR_ARRAY); | 99 | string[] ospaTuples = ospaMeat.Split(OSPA_TUPLE_SEPARATOR_ARRAY); |
@@ -116,7 +115,7 @@ namespace OpenSim.Framework.Communications.Osp | |||
116 | return ResolveOspaName(value, commsManager); | 115 | return ResolveOspaName(value, commsManager); |
117 | } | 116 | } |
118 | 117 | ||
119 | return null; | 118 | return UUID.Zero; |
120 | } | 119 | } |
121 | 120 | ||
122 | /// <summary> | 121 | /// <summary> |
@@ -138,14 +137,14 @@ namespace OpenSim.Framework.Communications.Osp | |||
138 | /// <returns> | 137 | /// <returns> |
139 | /// An OpenSim internal identifier for the name given. Returns null if the name was not valid | 138 | /// An OpenSim internal identifier for the name given. Returns null if the name was not valid |
140 | /// </returns> | 139 | /// </returns> |
141 | protected static string ResolveOspaName(string name, CommunicationsManager commsManager) | 140 | protected static UUID ResolveOspaName(string name, CommunicationsManager commsManager) |
142 | { | 141 | { |
143 | int nameSeparatorIndex = name.IndexOf(OSPA_NAME_VALUE_SEPARATOR); | 142 | int nameSeparatorIndex = name.IndexOf(OSPA_NAME_VALUE_SEPARATOR); |
144 | 143 | ||
145 | if (nameSeparatorIndex < 0) | 144 | if (nameSeparatorIndex < 0) |
146 | { | 145 | { |
147 | m_log.WarnFormat("[OSP RESOLVER]: Ignoring unseparated name {0}", name); | 146 | m_log.WarnFormat("[OSP RESOLVER]: Ignoring unseparated name {0}", name); |
148 | return null; | 147 | return UUID.Zero; |
149 | } | 148 | } |
150 | 149 | ||
151 | string firstName = name.Remove(nameSeparatorIndex).TrimEnd(); | 150 | string firstName = name.Remove(nameSeparatorIndex).TrimEnd(); |
@@ -153,7 +152,7 @@ namespace OpenSim.Framework.Communications.Osp | |||
153 | 152 | ||
154 | CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); | 153 | CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); |
155 | if (userInfo != null) | 154 | if (userInfo != null) |
156 | return userInfo.UserProfile.ID.ToString(); | 155 | return userInfo.UserProfile.ID; |
157 | 156 | ||
158 | UserProfileData tempUserProfile = new UserProfileData(); | 157 | UserProfileData tempUserProfile = new UserProfileData(); |
159 | tempUserProfile.FirstName = firstName; | 158 | tempUserProfile.FirstName = firstName; |
@@ -164,7 +163,7 @@ namespace OpenSim.Framework.Communications.Osp | |||
164 | "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID); | 163 | "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID); |
165 | commsManager.UserService.AddTemporaryUserProfile(tempUserProfile); | 164 | commsManager.UserService.AddTemporaryUserProfile(tempUserProfile); |
166 | 165 | ||
167 | return tempUserProfile.ID.ToString(); | 166 | return tempUserProfile.ID; |
168 | } | 167 | } |
169 | } | 168 | } |
170 | } | 169 | } |
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs index 61771ab..f874de1 100644 --- a/OpenSim/Framework/InventoryItemBase.cs +++ b/OpenSim/Framework/InventoryItemBase.cs | |||
@@ -48,38 +48,30 @@ namespace OpenSim.Framework | |||
48 | /// <value> | 48 | /// <value> |
49 | /// The creator of this item | 49 | /// The creator of this item |
50 | /// </value> | 50 | /// </value> |
51 | public string CreatorId | 51 | public string CreatorId { get; set; } |
52 | { | ||
53 | get { return m_creatorId; } | ||
54 | set | ||
55 | { | ||
56 | m_creatorId = value; | ||
57 | UUID creatorIdAsUuid; | ||
58 | |||
59 | // For now, all IDs are UUIDs | ||
60 | UUID.TryParse(m_creatorId, out creatorIdAsUuid); | ||
61 | CreatorIdAsUuid = creatorIdAsUuid; | ||
62 | } | ||
63 | } | ||
64 | |||
65 | private string m_creatorId = String.Empty; | ||
66 | 52 | ||
67 | /// <value> | 53 | /// <value> |
68 | /// The creator of this item expressed as a UUID | 54 | /// The creator of this item expressed as a UUID. Database plugins don't need to set this, it will be set by |
55 | /// upstream code (or set by the get accessor if left unset). | ||
69 | /// </value> | 56 | /// </value> |
70 | public UUID CreatorIdAsUuid | 57 | public UUID CreatorIdAsUuid |
71 | { | 58 | { |
72 | get | 59 | get |
73 | { | 60 | { |
61 | if (UUID.Zero == m_creatorIdAsUuid) | ||
62 | { | ||
63 | UUID.TryParse(CreatorId, out m_creatorIdAsUuid); | ||
64 | } | ||
65 | |||
74 | return m_creatorIdAsUuid; | 66 | return m_creatorIdAsUuid; |
75 | } | 67 | } |
68 | |||
76 | set | 69 | set |
77 | { | 70 | { |
78 | m_creatorIdAsUuid = value; | 71 | m_creatorIdAsUuid = value; |
79 | } | 72 | } |
80 | } | 73 | } |
81 | 74 | protected UUID m_creatorIdAsUuid = UUID.Zero; | |
82 | private UUID m_creatorIdAsUuid = UUID.Zero; | ||
83 | 75 | ||
84 | /// <value> | 76 | /// <value> |
85 | /// The description of the inventory item (must be less than 64 characters) | 77 | /// The description of the inventory item (must be less than 64 characters) |
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs index f5789b7..5c2fe33 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs | |||
@@ -25,9 +25,12 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System.Collections.Generic; | ||
29 | using OpenSim.Data; | ||
28 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
29 | using OpenSim.Framework.Communications; | 31 | using OpenSim.Framework.Communications; |
30 | using OpenSim.Framework.Communications.Cache; | 32 | using OpenSim.Framework.Communications.Cache; |
33 | using OpenSim.Framework.Communications.Osp; | ||
31 | using OpenSim.Framework.Servers; | 34 | using OpenSim.Framework.Servers; |
32 | using OpenSim.Framework.Servers.HttpServer; | 35 | using OpenSim.Framework.Servers.HttpServer; |
33 | using OpenSim.Region.Communications.Local; | 36 | using OpenSim.Region.Communications.Local; |
@@ -42,7 +45,6 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
42 | NetworkServersInfo serversInfo, | 45 | NetworkServersInfo serversInfo, |
43 | BaseHttpServer httpServer, | 46 | BaseHttpServer httpServer, |
44 | IAssetCache assetCache, | 47 | IAssetCache assetCache, |
45 | LocalInventoryService inventoryService, | ||
46 | HGGridServices gridService, | 48 | HGGridServices gridService, |
47 | LibraryRootFolder libraryRootFolder, | 49 | LibraryRootFolder libraryRootFolder, |
48 | bool dumpAssetsToFile) | 50 | bool dumpAssetsToFile) |
@@ -52,10 +54,24 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
52 | new LocalUserServices( | 54 | new LocalUserServices( |
53 | serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this); | 55 | serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this); |
54 | localUserService.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource); | 56 | localUserService.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource); |
57 | |||
58 | HGInventoryServiceClient inventoryService | ||
59 | = new HGInventoryServiceClient(serversInfo.InventoryURL, null, false); | ||
60 | List<IInventoryDataPlugin> plugins | ||
61 | = DataPluginFactory.LoadDataPlugins<IInventoryDataPlugin>( | ||
62 | configSettings.StandaloneInventoryPlugin, | ||
63 | configSettings.StandaloneInventorySource); | ||
64 | |||
65 | foreach (IInventoryDataPlugin plugin in plugins) | ||
66 | { | ||
67 | // Using the OSP wrapper plugin should be made configurable at some point | ||
68 | inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this)); | ||
69 | } | ||
55 | 70 | ||
56 | AddInventoryService(inventoryService); | 71 | AddInventoryService(inventoryService); |
57 | m_defaultInventoryHost = inventoryService.Host; | 72 | m_defaultInventoryHost = inventoryService.Host; |
58 | m_interServiceInventoryService = inventoryService; | 73 | m_interServiceInventoryService = inventoryService; |
74 | inventoryService.UserProfileCache = UserProfileCacheService; | ||
59 | 75 | ||
60 | m_assetCache = assetCache; | 76 | m_assetCache = assetCache; |
61 | // Let's swap to always be secure access to inventory | 77 | // Let's swap to always be secure access to inventory |
diff --git a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs index acb7496..60feee1 100644 --- a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs +++ b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs | |||
@@ -25,9 +25,12 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System.Collections.Generic; | ||
29 | using OpenSim.Data; | ||
28 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
29 | using OpenSim.Framework.Communications; | 31 | using OpenSim.Framework.Communications; |
30 | using OpenSim.Framework.Communications.Cache; | 32 | using OpenSim.Framework.Communications.Cache; |
33 | using OpenSim.Framework.Communications.Osp; | ||
31 | using OpenSim.Framework.Servers.HttpServer; | 34 | using OpenSim.Framework.Servers.HttpServer; |
32 | 35 | ||
33 | namespace OpenSim.Region.Communications.Local | 36 | namespace OpenSim.Region.Communications.Local |
@@ -39,12 +42,22 @@ namespace OpenSim.Region.Communications.Local | |||
39 | NetworkServersInfo serversInfo, | 42 | NetworkServersInfo serversInfo, |
40 | BaseHttpServer httpServer, | 43 | BaseHttpServer httpServer, |
41 | IAssetCache assetCache, | 44 | IAssetCache assetCache, |
42 | LocalInventoryService inventoryService, | ||
43 | IGridServices gridService, | ||
44 | LibraryRootFolder libraryRootFolder, | 45 | LibraryRootFolder libraryRootFolder, |
45 | bool dumpAssetsToFile) | 46 | bool dumpAssetsToFile) |
46 | : base(serversInfo, httpServer, assetCache, dumpAssetsToFile, libraryRootFolder) | 47 | : base(serversInfo, httpServer, assetCache, dumpAssetsToFile, libraryRootFolder) |
47 | { | 48 | { |
49 | LocalInventoryService inventoryService = new LocalInventoryService(); | ||
50 | List<IInventoryDataPlugin> plugins | ||
51 | = DataPluginFactory.LoadDataPlugins<IInventoryDataPlugin>( | ||
52 | configSettings.StandaloneInventoryPlugin, | ||
53 | configSettings.StandaloneInventorySource); | ||
54 | |||
55 | foreach (IInventoryDataPlugin plugin in plugins) | ||
56 | { | ||
57 | // Using the OSP wrapper plugin for database plugins should be made configurable at some point | ||
58 | inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this)); | ||
59 | } | ||
60 | |||
48 | AddInventoryService(inventoryService); | 61 | AddInventoryService(inventoryService); |
49 | m_defaultInventoryHost = inventoryService.Host; | 62 | m_defaultInventoryHost = inventoryService.Host; |
50 | m_interServiceInventoryService = inventoryService; | 63 | m_interServiceInventoryService = inventoryService; |
@@ -58,8 +71,10 @@ namespace OpenSim.Region.Communications.Local | |||
58 | m_userAdminService = lus; | 71 | m_userAdminService = lus; |
59 | m_avatarService = lus; | 72 | m_avatarService = lus; |
60 | m_messageService = lus; | 73 | m_messageService = lus; |
61 | 74 | ||
62 | m_gridService = gridService; | 75 | m_gridService = new LocalBackEndServices(); |
76 | |||
77 | //LocalLoginService loginService = CreateLoginService(libraryRootFolder, inventoryService, userService, backendService); | ||
63 | } | 78 | } |
64 | } | 79 | } |
65 | } | 80 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index bf3097a..b0c1d0b 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |||
@@ -157,9 +157,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
157 | // Don't use the item ID that's in the file | 157 | // Don't use the item ID that's in the file |
158 | item.ID = UUID.Random(); | 158 | item.ID = UUID.Random(); |
159 | 159 | ||
160 | string ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_commsManager); | 160 | UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_commsManager); |
161 | if (null != ospResolvedId) | 161 | if (UUID.Zero != ospResolvedId) |
162 | item.CreatorId = ospResolvedId; | 162 | item.CreatorIdAsUuid = ospResolvedId; |
163 | 163 | ||
164 | item.Owner = m_userInfo.UserProfile.ID; | 164 | item.Owner = m_userInfo.UserProfile.ID; |
165 | 165 | ||
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 274e329..4c6045a 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs | |||
@@ -253,7 +253,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
253 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); | 253 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); |
254 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); | 254 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); |
255 | 255 | ||
256 | Assert.That(foundItem.CreatorId, Is.EqualTo(user2Uuid.ToString())); | 256 | Assert.That(foundItem.CreatorId, Is.EqualTo(item1.CreatorId)); |
257 | Assert.That(foundItem.CreatorIdAsUuid, Is.EqualTo(user2Uuid)); | ||
257 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); | 258 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); |
258 | 259 | ||
259 | Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); | 260 | Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); |
@@ -321,8 +322,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
321 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); | 322 | = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); |
322 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); | 323 | InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); |
323 | 324 | ||
324 | Assert.That(foundItem.CreatorId, Is.EqualTo(user2Profile.ID.ToString())); | 325 | Assert.That(foundItem.CreatorId, Is.EqualTo(item1.CreatorId)); |
325 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); | 326 | Assert.That( |
327 | foundItem.CreatorIdAsUuid, Is.EqualTo(OspResolver.HashName(user2FirstName + " " + user2LastName))); | ||
328 | Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); | ||
326 | 329 | ||
327 | Console.WriteLine("### Successfully completed {0} ###", MethodBase.GetCurrentMethod()); | 330 | Console.WriteLine("### Successfully completed {0} ###", MethodBase.GetCurrentMethod()); |
328 | } | 331 | } |