Source code for paradrop.backend.password_api

import json
from twisted.internet.defer import succeed
from klein import Klein

from . import cors


[docs]class PasswordApi(object): ''' For now, we only support set/reset password for the default user: 'paradrop' ''' routes = Klein() def __init__(self, password_manager): self.password_manager = password_manager
[docs] @routes.route('/clear', methods=['POST']) def clear(self, request): cors.config_cors(request) request.setHeader('Content-Type', 'application/json') self.password_manager.reset() return json.dumps({'success': True})
# OPTIONS method for CORS
[docs] @routes.route('/change', methods=['POST', 'OPTIONS']) def change(self, request): cors.config_cors(request) if request.method == 'OPTIONS': return succeed(None) request.setHeader('Content-Type', 'application/json') body = json.loads(request.content.read()) password = body['password'] result = self.password_manager.change_password(None, password) return json.dumps({'success': result})