aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
diff options
context:
space:
mode:
authorMelanie Thielker2010-05-05 23:06:36 +0200
committerMelanie Thielker2010-05-05 23:06:36 +0200
commit65775b87e5000a07634240ab8ce39aaecd30d1e6 (patch)
tree3f383c556608cab4d21e5505d459ce32e30aea89 /OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
parentRemoved a test for a "can't happen" case. ParentGroup is never null anymore. (diff)
downloadopensim-SC-65775b87e5000a07634240ab8ce39aaecd30d1e6.zip
opensim-SC-65775b87e5000a07634240ab8ce39aaecd30d1e6.tar.gz
opensim-SC-65775b87e5000a07634240ab8ce39aaecd30d1e6.tar.bz2
opensim-SC-65775b87e5000a07634240ab8ce39aaecd30d1e6.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/LLLoginHandlers.cs')
-rw-r--r--OpenSim/Server/Handlers/Login/LLLoginHandlers.cs37
1 files changed, 37 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)