def service_set_inbound_number(service_id):
    available_inbound_numbers = inbound_number_client.get_available_inbound_sms_numbers(
    )
    inbound_numbers_value_and_label = [
        (number['id'], number['number'])
        for number in available_inbound_numbers['data']
    ]
    no_available_numbers = available_inbound_numbers['data'] == []
    form = ServiceInboundNumberForm(
        inbound_number_choices=inbound_numbers_value_and_label)

    if form.validate_on_submit():
        service_api_client.add_sms_sender(
            current_service.id,
            sms_sender=form.inbound_number.data,
            is_default=True,
            inbound_number_id=form.inbound_number.data)
        current_service.force_permission('inbound_sms', on=True)
        return redirect(url_for('.service_settings', service_id=service_id))

    return render_template(
        'views/service-settings/set-inbound-number.html',
        form=form,
        no_available_numbers=no_available_numbers,
    )
Ejemplo n.º 2
0
def service_set_channel(service_id, channel):

    if channel not in {'email', 'sms', 'letter'}:
        abort(404)

    if current_service.has_permission('broadcast'):
        abort(403)

    form = ServiceSwitchChannelForm(
        channel=channel,
        enabled=current_service.has_permission(channel)
    )

    if form.validate_on_submit():
        current_service.force_permission(
            channel,
            on=form.enabled.data,
        )
        return redirect(
            url_for(".service_settings", service_id=service_id)
        )

    return render_template(
        'views/service-settings/set-{}.html'.format(channel),
        form=form,
    )
def service_set_international_sms(service_id):
    form = InternationalSMSForm(enabled='on' if current_service.
                                has_permission('international_sms') else 'off')
    if form.validate_on_submit():
        current_service.force_permission(
            'international_sms',
            on=(form.enabled.data == 'on'),
        )
        return redirect(url_for(".service_settings", service_id=service_id))
    return render_template(
        'views/service-settings/set-international-sms.html',
        form=form,
    )
def service_set_international_letters(service_id):
    form = ServiceOnOffSettingForm(
        'Send letters to international addresses',
        enabled=current_service.has_permission('international_letters'),
    )
    if form.validate_on_submit():
        current_service.force_permission(
            'international_letters',
            on=form.enabled.data,
        )
        return redirect(url_for(".service_settings", service_id=service_id))
    return render_template(
        'views/service-settings/set-international-letters.html',
        form=form,
    )
def service_set_permission(service_id, permission):
    if permission not in PLATFORM_ADMIN_SERVICE_PERMISSIONS:
        abort(404)

    title = PLATFORM_ADMIN_SERVICE_PERMISSIONS[permission]['title']
    form = ServiceOnOffSettingForm(
        name=title, enabled=current_service.has_permission(permission))

    if form.validate_on_submit():
        current_service.force_permission(permission, on=form.enabled.data)

        return redirect(url_for(".service_settings", service_id=service_id))

    return render_template(
        'views/service-settings/set-service-setting.html',
        title=title,
        form=form,
    )
def service_set_broadcast_permission(service_id):

    title = PLATFORM_ADMIN_SERVICE_PERMISSIONS['broadcast']['title']
    form = ServiceOnOffSettingForm(
        name=title, enabled=current_service.has_permission('broadcast'))

    if form.validate_on_submit():

        if form.enabled.data:
            current_service.force_broadcast_permission_on()
        else:
            current_service.force_permission('broadcast', on=False)

        return redirect(url_for(".service_settings", service_id=service_id))

    return render_template(
        'views/service-settings/set-service-setting.html',
        title=title,
        form=form,
    )