From fe49c96ee0db0974a91b9b175ac1b00aef035797 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Mon, 3 Mar 2008 08:30:36 +0000 Subject: * Applying Ahzz's profile patch. Thanks Ahzz! * Fixed a few bugs in the patch that are sim crashers. * There's still a bug in mySQL mode/ grid mode where the main userprofile text doesn't save. --- OpenSim/Grid/UserServer/Main.cs | 1 + OpenSim/Grid/UserServer/UserManager.cs | 55 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) (limited to 'OpenSim/Grid') diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index fcf9de6..c3d65c4 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -127,6 +127,7 @@ namespace OpenSim.Grid.UserServer httpServer.AddStreamHandler( new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); + httpServer.AddXmlRPCHandler("update_user_profile", m_userManager.XmlRpcResponseXmlRPCUpdateUserProfile); httpServer.Start(); m_log.Info("[SERVER]: Userserver 0.5 - Startup complete"); } diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 367b5d7..153ac75 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs @@ -313,6 +313,61 @@ namespace OpenSim.Grid.UserServer return ProfileToXmlRPCResponse(userProfile); } + + public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserProfile(XmlRpcRequest request) + { + m_log.Debug("[UserManager]: Got request to update user profile"); + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable requestData = (Hashtable)request.Params[0]; + Hashtable responseData = new Hashtable(); + + UserProfileData userProfile; + if (!requestData.Contains("avatar_uuid")) + { + return CreateUnknownUserErrorResponse(); + } + + LLUUID UserUUID = new LLUUID((string)requestData["avatar_uuid"]); + userProfile = GetUserProfile(UserUUID); + if (null == userProfile) + { + return CreateUnknownUserErrorResponse(); + } + // don't know how yet. + if (requestData.Contains("AllowPublish")) + { + } + if (requestData.Contains("FLImageID")) + { + userProfile.profileFirstImage = new LLUUID((string)requestData["FLImageID"]); + } + if (requestData.Contains("ImageID")) + { + userProfile.profileImage = new LLUUID((string)requestData["ImageID"]); + } + // dont' know how yet + if (requestData.Contains("MaturePublish")) + { + } + if (requestData.Contains("AboutText")) + { + userProfile.profileAboutText = (string)requestData["AboutText"]; + } + if (requestData.Contains("FLAboutText")) + { + userProfile.profileFirstText = (string)requestData["FLAboutText"]; + } + // not in DB yet. + if (requestData.Contains("ProfileURL")) + { + } + // call plugin! + bool ret = UpdateUserProfileProperties(userProfile); + responseData["returnString"] = ret.ToString(); + response.Value = responseData; + return response; + } + public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request) { XmlRpcResponse response = new XmlRpcResponse(); -- cgit v1.1