예제 #1
0
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))
예제 #2
0
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)