diff options
Diffstat (limited to 'OpenSim/Grid/UserServer/UserLoginService.cs')
-rw-r--r-- | OpenSim/Grid/UserServer/UserLoginService.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 0af5790..d3164ad 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -28,12 +28,16 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | ||
31 | using System.Net; | 32 | using System.Net; |
32 | using Nwc.XmlRpc; | 33 | using Nwc.XmlRpc; |
34 | using libsecondlife; | ||
33 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
37 | using OpenSim.Framework.Servers; | ||
35 | using OpenSim.Framework.Data; | 38 | using OpenSim.Framework.Data; |
36 | using OpenSim.Framework.UserManagement; | 39 | using OpenSim.Framework.UserManagement; |
40 | using InventoryFolder = OpenSim.Framework.InventoryFolder; | ||
37 | 41 | ||
38 | namespace OpenSim.Grid.UserServer | 42 | namespace OpenSim.Grid.UserServer |
39 | { | 43 | { |
@@ -189,5 +193,51 @@ namespace OpenSim.Grid.UserServer | |||
189 | 193 | ||
190 | } | 194 | } |
191 | } | 195 | } |
196 | |||
197 | protected override InventoryData CreateInventoryData(LLUUID userID) | ||
198 | { | ||
199 | List<InventoryFolderBase> folders = SyncRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>(m_config.InventoryUrl + "RootFolders/", userID); | ||
200 | if (folders.Count > 0) | ||
201 | { | ||
202 | LLUUID rootID = LLUUID.Zero; | ||
203 | ArrayList AgentInventoryArray = new ArrayList(); | ||
204 | Hashtable TempHash; | ||
205 | foreach (InventoryFolderBase InvFolder in folders) | ||
206 | { | ||
207 | if (InvFolder.parentID == LLUUID.Zero) | ||
208 | { | ||
209 | rootID = InvFolder.folderID; | ||
210 | } | ||
211 | TempHash = new Hashtable(); | ||
212 | TempHash["name"] = InvFolder.name; | ||
213 | TempHash["parent_id"] = InvFolder.parentID.ToStringHyphenated(); | ||
214 | TempHash["version"] = (Int32)InvFolder.version; | ||
215 | TempHash["type_default"] = (Int32)InvFolder.type; | ||
216 | TempHash["folder_id"] = InvFolder.folderID.ToStringHyphenated(); | ||
217 | AgentInventoryArray.Add(TempHash); | ||
218 | } | ||
219 | return new InventoryData(AgentInventoryArray, rootID); | ||
220 | } | ||
221 | else | ||
222 | { | ||
223 | AgentInventory userInventory = new AgentInventory(); | ||
224 | userInventory.CreateRootFolder(userID, false); | ||
225 | |||
226 | ArrayList AgentInventoryArray = new ArrayList(); | ||
227 | Hashtable TempHash; | ||
228 | foreach (InventoryFolder InvFolder in userInventory.InventoryFolders.Values) | ||
229 | { | ||
230 | TempHash = new Hashtable(); | ||
231 | TempHash["name"] = InvFolder.FolderName; | ||
232 | TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated(); | ||
233 | TempHash["version"] = (Int32)InvFolder.Version; | ||
234 | TempHash["type_default"] = (Int32)InvFolder.DefaultType; | ||
235 | TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated(); | ||
236 | AgentInventoryArray.Add(TempHash); | ||
237 | } | ||
238 | |||
239 | return new InventoryData(AgentInventoryArray, userInventory.InventoryRoot.FolderID); | ||
240 | } | ||
241 | } | ||
192 | } | 242 | } |
193 | } \ No newline at end of file | 243 | } \ No newline at end of file |