aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/UserServer/UserManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/UserServer/UserManager.cs')
-rw-r--r--OpenSim/Grid/UserServer/UserManager.cs187
1 files changed, 32 insertions, 155 deletions
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs
index 6229dec..ca50421 100644
--- a/OpenSim/Grid/UserServer/UserManager.cs
+++ b/OpenSim/Grid/UserServer/UserManager.cs
@@ -48,16 +48,45 @@ namespace OpenSim.Grid.UserServer
48 private logOffUser handlerLogOffUser; 48 private logOffUser handlerLogOffUser;
49 49
50 private UserDataBaseService m_userDataBaseService; 50 private UserDataBaseService m_userDataBaseService;
51 private BaseHttpServer m_httpServer;
51 52
52 /// <summary> 53 /// <summary>
53 /// Constructor 54 ///
54 /// </summary> 55 /// </summary>
55 /// <param name="interServiceInventoryService"></param> 56 /// <param name="userDataBaseService"></param>
56 public UserManager(IInterServiceInventoryServices interServiceInventoryService, UserDataBaseService userDataBaseService) 57 public UserManager( UserDataBaseService userDataBaseService)
57 { 58 {
58 m_userDataBaseService = userDataBaseService; 59 m_userDataBaseService = userDataBaseService;
59 } 60 }
60 61
62 public void Initialise()
63 {
64
65 }
66
67 public void PostInitialise()
68 {
69
70 }
71
72 public void RegisterHandlers(BaseHttpServer httpServer)
73 {
74 m_httpServer = httpServer;
75
76 m_httpServer.AddXmlRPCHandler("get_user_by_name", XmlRPCGetUserMethodName);
77 m_httpServer.AddXmlRPCHandler("get_user_by_uuid", XmlRPCGetUserMethodUUID);
78 m_httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", XmlRPCGetAvatarPickerAvatar);
79
80 m_httpServer.AddXmlRPCHandler("update_user_current_region", XmlRPCAtRegion);
81 m_httpServer.AddXmlRPCHandler("logout_of_simulator", XmlRPCLogOffUserMethodUUID);
82 m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", XmlRPCGetAgentMethodUUID);
83 m_httpServer.AddXmlRPCHandler("check_auth_session", XmlRPCCheckAuthSession);
84
85 m_httpServer.AddXmlRPCHandler("update_user_profile", XmlRpcResponseXmlRPCUpdateUserProfile);
86
87 m_httpServer.AddStreamHandler(new RestStreamHandler("DELETE", "/usersessions/", RestDeleteUserSessionMethod));
88 }
89
61 /// <summary> 90 /// <summary>
62 /// Deletes an active agent session 91 /// Deletes an active agent session
63 /// </summary> 92 /// </summary>
@@ -109,26 +138,6 @@ namespace OpenSim.Grid.UserServer
109 return response; 138 return response;
110 } 139 }
111 140
112 public XmlRpcResponse FriendListItemListtoXmlRPCResponse(List<FriendListItem> returnUsers)
113 {
114 XmlRpcResponse response = new XmlRpcResponse();
115 Hashtable responseData = new Hashtable();
116 // Query Result Information
117
118 responseData["avcount"] = returnUsers.Count.ToString();
119
120 for (int i = 0; i < returnUsers.Count; i++)
121 {
122 responseData["ownerID" + i] = returnUsers[i].FriendListOwner.ToString();
123 responseData["friendID" + i] = returnUsers[i].Friend.ToString();
124 responseData["ownerPerms" + i] = returnUsers[i].FriendListOwnerPerms.ToString();
125 responseData["friendPerms" + i] = returnUsers[i].FriendPerms.ToString();
126 }
127 response.Value = responseData;
128
129 return response;
130 }
131
132 /// <summary> 141 /// <summary>
133 /// Converts a user profile to an XML element which can be returned 142 /// Converts a user profile to an XML element which can be returned
134 /// </summary> 143 /// </summary>
@@ -230,138 +239,6 @@ namespace OpenSim.Grid.UserServer
230 return response; 239 return response;
231 } 240 }
232 241
233 public XmlRpcResponse XmlRpcResponseXmlRPCAddUserFriend(XmlRpcRequest request)
234 {
235 XmlRpcResponse response = new XmlRpcResponse();
236 Hashtable requestData = (Hashtable) request.Params[0];
237 Hashtable responseData = new Hashtable();
238 string returnString = "FALSE";
239 // Query Result Information
240
241 if (requestData.Contains("ownerID") && requestData.Contains("friendID") &&
242 requestData.Contains("friendPerms"))
243 {
244 // UserManagerBase.AddNewuserFriend
245 m_userDataBaseService.AddNewUserFriend(new UUID((string)requestData["ownerID"]),
246 new UUID((string) requestData["friendID"]),
247 (uint) Convert.ToInt32((string) requestData["friendPerms"]));
248 returnString = "TRUE";
249 }
250 responseData["returnString"] = returnString;
251 response.Value = responseData;
252 return response;
253 }
254
255 public XmlRpcResponse XmlRpcResponseXmlRPCRemoveUserFriend(XmlRpcRequest request)
256 {
257 XmlRpcResponse response = new XmlRpcResponse();
258 Hashtable requestData = (Hashtable) request.Params[0];
259 Hashtable responseData = new Hashtable();
260 string returnString = "FALSE";
261 // Query Result Information
262
263 if (requestData.Contains("ownerID") && requestData.Contains("friendID"))
264 {
265 // UserManagerBase.AddNewuserFriend
266 m_userDataBaseService.RemoveUserFriend(new UUID((string)requestData["ownerID"]),
267 new UUID((string) requestData["friendID"]));
268 returnString = "TRUE";
269 }
270 responseData["returnString"] = returnString;
271 response.Value = responseData;
272 return response;
273 }
274
275 public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserFriendPerms(XmlRpcRequest request)
276 {
277 XmlRpcResponse response = new XmlRpcResponse();
278 Hashtable requestData = (Hashtable) request.Params[0];
279 Hashtable responseData = new Hashtable();
280 string returnString = "FALSE";
281
282 if (requestData.Contains("ownerID") && requestData.Contains("friendID") &&
283 requestData.Contains("friendPerms"))
284 {
285 m_userDataBaseService.UpdateUserFriendPerms(new UUID((string)requestData["ownerID"]),
286 new UUID((string) requestData["friendID"]),
287 (uint) Convert.ToInt32((string) requestData["friendPerms"]));
288 // UserManagerBase.
289 returnString = "TRUE";
290 }
291 responseData["returnString"] = returnString;
292 response.Value = responseData;
293 return response;
294 }
295
296 public XmlRpcResponse XmlRpcResponseXmlRPCGetUserFriendList(XmlRpcRequest request)
297 {
298 // XmlRpcResponse response = new XmlRpcResponse();
299 Hashtable requestData = (Hashtable) request.Params[0];
300 // Hashtable responseData = new Hashtable();
301
302 List<FriendListItem> returndata = new List<FriendListItem>();
303
304 if (requestData.Contains("ownerID"))
305 {
306 returndata = m_userDataBaseService.GetUserFriendList(new UUID((string)requestData["ownerID"]));
307 }
308
309 return FriendListItemListtoXmlRPCResponse(returndata);
310 }
311
312 public XmlRpcResponse XmlRPCGetAvatarAppearance(XmlRpcRequest request)
313 {
314 XmlRpcResponse response = new XmlRpcResponse();
315 Hashtable requestData = (Hashtable) request.Params[0];
316 AvatarAppearance appearance;
317 Hashtable responseData;
318 if (requestData.Contains("owner"))
319 {
320 appearance = m_userDataBaseService.GetUserAppearance(new UUID((string)requestData["owner"]));
321 if (appearance == null)
322 {
323 responseData = new Hashtable();
324 responseData["error_type"] = "no appearance";
325 responseData["error_desc"] = "There was no appearance found for this avatar";
326 }
327 else
328 {
329 responseData = appearance.ToHashTable();
330 }
331 }
332 else
333 {
334 responseData = new Hashtable();
335 responseData["error_type"] = "unknown_avatar";
336 responseData["error_desc"] = "The avatar appearance requested is not in the database";
337 }
338
339 response.Value = responseData;
340 return response;
341 }
342
343 public XmlRpcResponse XmlRPCUpdateAvatarAppearance(XmlRpcRequest request)
344 {
345 XmlRpcResponse response = new XmlRpcResponse();
346 Hashtable requestData = (Hashtable) request.Params[0];
347 Hashtable responseData;
348 if (requestData.Contains("owner"))
349 {
350 AvatarAppearance appearance = new AvatarAppearance(requestData);
351 m_userDataBaseService.UpdateUserAppearance(new UUID((string)requestData["owner"]), appearance);
352 responseData = new Hashtable();
353 responseData["returnString"] = "TRUE";
354 }
355 else
356 {
357 responseData = new Hashtable();
358 responseData["error_type"] = "unknown_avatar";
359 responseData["error_desc"] = "The avatar appearance requested is not in the database";
360 }
361 response.Value = responseData;
362 return response;
363 }
364
365 public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request) 242 public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request)
366 { 243 {
367 // XmlRpcResponse response = new XmlRpcResponse(); 244 // XmlRpcResponse response = new XmlRpcResponse();