diff options
author | Melanie Thielker | 2010-05-05 23:06:36 +0200 |
---|---|---|
committer | Melanie | 2010-05-05 20:46:53 +0100 |
commit | fe8399d1bf6ed84435c41d495b04feb25fb9a988 (patch) | |
tree | c1e9ceee956f445134d64fbf2a41061f5e892bdb /OpenSim/Server/Handlers/Login | |
parent | Removed a test for a "can't happen" case. ParentGroup is never null anymore. (diff) | |
download | opensim-SC_OLD-fe8399d1bf6ed84435c41d495b04feb25fb9a988.zip opensim-SC_OLD-fe8399d1bf6ed84435c41d495b04feb25fb9a988.tar.gz opensim-SC_OLD-fe8399d1bf6ed84435c41d495b04feb25fb9a988.tar.bz2 opensim-SC_OLD-fe8399d1bf6ed84435c41d495b04feb25fb9a988.tar.xz |
Add a XMLRPC method to remotely set the login level for the LLLoginService.
This requires a special XMLRPC call, which has to supply the credentials of
a god user (User level >= 200). Disabled by default. Also Adds a configuration
option to set the initial permitted login level.
Diffstat (limited to 'OpenSim/Server/Handlers/Login')
-rw-r--r-- | OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | 37 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs index daf2704..83b3e31 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | |||
@@ -99,6 +99,43 @@ namespace OpenSim.Server.Handlers.Login | |||
99 | 99 | ||
100 | } | 100 | } |
101 | 101 | ||
102 | public XmlRpcResponse HandleXMLRPCSetLoginLevel(XmlRpcRequest request, IPEndPoint remoteClient) | ||
103 | { | ||
104 | Hashtable requestData = (Hashtable)request.Params[0]; | ||
105 | |||
106 | if (requestData != null) | ||
107 | { | ||
108 | if (requestData.ContainsKey("first") && requestData["first"] != null && | ||
109 | requestData.ContainsKey("last") && requestData["last"] != null && | ||
110 | requestData.ContainsKey("level") && requestData["level"] != null && | ||
111 | requestData.ContainsKey("passwd") && requestData["passwd"] != null) | ||
112 | { | ||
113 | string first = requestData["first"].ToString(); | ||
114 | string last = requestData["last"].ToString(); | ||
115 | string passwd = requestData["passwd"].ToString(); | ||
116 | int level = Int32.Parse(requestData["level"].ToString()); | ||
117 | |||
118 | m_log.InfoFormat("[LOGIN]: XMLRPC Set Level to {2} Requested by {0} {1}", first, last, level); | ||
119 | |||
120 | Hashtable reply = m_LocalService.SetLevel(first, last, passwd, level, remoteClient); | ||
121 | |||
122 | XmlRpcResponse response = new XmlRpcResponse(); | ||
123 | response.Value = reply; | ||
124 | |||
125 | return response; | ||
126 | |||
127 | } | ||
128 | } | ||
129 | |||
130 | XmlRpcResponse failResponse = new XmlRpcResponse(); | ||
131 | Hashtable failHash = new Hashtable(); | ||
132 | failHash["success"] = "false"; | ||
133 | failResponse.Value = failHash; | ||
134 | |||
135 | return failResponse; | ||
136 | |||
137 | } | ||
138 | |||
102 | public OSD HandleLLSDLogin(OSD request, IPEndPoint remoteClient) | 139 | public OSD HandleLLSDLogin(OSD request, IPEndPoint remoteClient) |
103 | { | 140 | { |
104 | if (request.Type == OSDType.Map) | 141 | if (request.Type == OSDType.Map) |
diff --git a/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs index e24055b..67e8392 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs | |||
@@ -88,6 +88,7 @@ namespace OpenSim.Server.Handlers.Login | |||
88 | { | 88 | { |
89 | LLLoginHandlers loginHandlers = new LLLoginHandlers(m_LoginService); | 89 | LLLoginHandlers loginHandlers = new LLLoginHandlers(m_LoginService); |
90 | server.AddXmlRPCHandler("login_to_simulator", loginHandlers.HandleXMLRPCLogin, false); | 90 | server.AddXmlRPCHandler("login_to_simulator", loginHandlers.HandleXMLRPCLogin, false); |
91 | server.AddXmlRPCHandler("set_login_level", loginHandlers.HandleXMLRPCSetLoginLevel, false); | ||
91 | server.SetDefaultLLSDHandler(loginHandlers.HandleLLSDLogin); | 92 | server.SetDefaultLLSDHandler(loginHandlers.HandleLLSDLogin); |
92 | } | 93 | } |
93 | 94 | ||