def register_user(self): if current_user.is_authenticated(): raise RequestException("you're already logged in") params = self._get_json_func_params( requiredParams=["email", "password", "password_confirm", "recaptcha_challenge_field", "recaptcha_response_field", "initial_workout_plan_uid", "initial_rest_plan_uid"]) form_class = app.extensions['security'].confirm_register_form form_data = MultiDict(params) form = form_class(form_data) if form.validate_on_submit(): user = flask_security_register_user(**form.to_dict()) user.create_profile() user.create_default_meal_plans( initial_workout_plan_uid=params["initial_workout_plan_uid"], initial_rest_plan_uid=params["initial_rest_plan_uid"]) form.user = user db.session.commit() flask_security_login_user(user) has_errors = len(form.errors) > 0 #this doesnt currently fit well with simpleapi's success variable and can definitely be improved if has_errors: response = { 'code': 400, 'errors': form.errors } else: response = { 'code': 200, 'app_context': AppContext.make_json_encodable_context() } return response
def index(): context = json_encode(AppContext.make_json_encodable_context(), return_request=False) if settings.DEBUG: template = 'index.tpl' else: template = 'index_compiled.tpl' return render_template(template, app_context=context, recaptcha_public_key=settings.RECAPTCHA_PUBLIC_KEY)
def logout_user(self): if not current_user.is_authenticated(): raise RequestException("you're not logged in") flask_security_logout_user() response = { 'code': 200, 'app_context': AppContext.make_json_encodable_context() } return response
def login_user(self): if current_user.is_authenticated(): raise RequestException("you're already logged in") params = self._get_json_func_params( requiredParams=["email", "password"]) form_class = app.extensions['security'].login_form form = form_class(MultiDict(params)) if form.validate_on_submit(): flask_security_login_user(form.user) db.session.commit() has_errors = len(form.errors) > 0 #this doesnt currently fit well with simpleapi's success variable and can definitely be improved if has_errors: response = { 'code': 400, 'errors': form.errors } else: response = { 'code': 200, 'app_context': AppContext.make_json_encodable_context() } return response