121
121
self.notice(nick, 'you are not registered!')
123
123
salted = results[0][0]
124
if salted != salthash(passwd, salted):
124
if salted != salthash(passwd.encode(), salted):
125
125
self.notice(nick, "password doesn't match")
181
181
self.doPage(request)
182
182
return server.NOT_DONE_YET
184
class DescSetterResource(Resource):
186
allowedMethods = 'GET', 'POST'
187
def __init__(self, lookup, dbpool):
188
self.lookup, self.dbpool = lookup, dbpool
189
Resource.__init__(self)
191
@defer.inlineCallbacks
192
def doPage(self, request):
193
username = request.args.get('username', ['']).pop()
194
passwd = request.args.get('passwd', ['']).pop()
195
description = request.args.get('description', ['']).pop()
196
results = yield self.dbpool.runQuery(
197
GET_PASSWORD, (username,))
199
message = 'Invalid username or password.'
201
salted = results[0][0]
202
if salted != salthash(passwd.encode(), salted):
203
message = 'Invalid username or password.'
208
description = description.decode('utf-8', 'replace')
209
yield self.dbpool.runOperation(
210
SET_DESCRIPTION, (username, description, time.time()))
211
message = "Description set for '%s'." % username
212
tmpl = self.lookup.get_template('postset.html')
213
request.write(tmpl.render(message=message))
216
def render_POST(self, request):
217
request.setHeader('Content-type', 'text/html; charset=utf-8')
219
return server.NOT_DONE_YET
221
def render_GET(self, request):
222
request.setHeader('Content-type', 'text/html; charset=utf-8')
223
tmpl = self.lookup.get_template('set.html')
184
226
class StaticTemplateResource(Resource):
186
228
def __init__(self, lookup, name):
203
245
static.File(options.at('web', 'static')))
204
246
self.root_resource.putChild('desc',
205
247
DescMapperResource(self.lookup, dbpool))
248
self.root_resource.putChild('set',
249
DescSetterResource(self.lookup, dbpool))
206
250
self.root_resource.putChild('',
207
251
StaticTemplateResource(self.lookup, 'index.html'))