def reply_registration_request(registration_request, action='deny'): status = 'Denied' if action == 'deny' else 'Approved' context = dict( approved=action != 'deny', app_name=current_app.config['APP_NAME'] ) msg = Message( 'Registration Request ' + status, sender=current_app.config['MAIL_DEFAULT_SENDER'], recipients=[registration_request.email]) if context['approved']: if registration_request.granted: return api_alert_response( '%s already been approved' % registration_request.email, 400, 'danger') context['register_link'] = url_for( 'index', filename='/register', token=registration_request.token, email=registration_request.email, _external=True) registration_request.granted = True registration_request.save() else: registration_request.delete() msg.body = render_template('email/registration_response.plain', **context) msg.html = render_template('email/registration_response.html', **context) mail_session.send(msg) return api_alert_response('%s has been %s.' % (registration_request.email, status))
def registration_request_action(action='deny'): if not current_user.is_authenticated() or not current_user.is_admin: return api_alert_response('Access Denied.', 400, 'danger') if action not in ['approve', 'deny']: return api_alert_response('Invalid action.', 400, 'danger') email = request.args['email'] registration_request = UserRegistrationRequest.get_by_email(email) if not registration_request: return api_alert_response('Unable to find registration.', 400, 'danger') return reply_registration_request(registration_request, action)