Пример #1
0
def registration_request(email, ip):
    msg = Message(
        'Registration Request', 
        sender=current_app.config['MAIL_USERNAME'],
        recipients=current_app.config['REQUEST_REGISTRATION_EMAIL'])
    context = dict(
        request_email=email,
        request_ip=ip,
        approve_url=url_for(
            '.registration_request_action', 
            action='approve', 
            email=email,
            _external=True),
        deny_url=url_for(
            '.registration_request_action', 
            action='deny', 
            email=email,
            _external=True)
    )
    msg.body = render_template('email/registration_request.plain', **context)
    msg.html = render_template('email/registration_request.html', **context)
    registration_request = UserRegistrationRequest(email, ip)
    registration_request.save()
    mail_session.send(msg) 
    return jsonify(dict(request_received=True))
Пример #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)
Пример #3
0
 def validate_token(form, field):
     if not UserRegistrationRequest.get_request(form.email.data, field.data):
         raise ValidationError("Invalid token and/or email.")
Пример #4
0
 def validate_email(form, field):
     if User.get_by_email(field.data):
         raise ValidationError("This email is already registered")
     if UserRegistrationRequest.get_by_email(field.data):
         raise ValidationError("Registration already requested for this email.")