mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 00:07:02 -04:00
Allow platform admins to change rate limit
One less thing we have to go into the database to do, and remember to manually clear the cache for after.
This commit is contained in:
@@ -1183,6 +1183,15 @@ class MessageLimit(StripWhitespaceForm):
|
||||
)
|
||||
|
||||
|
||||
class RateLimit(StripWhitespaceForm):
|
||||
rate_limit = GovukIntegerField(
|
||||
'Number of messages the service can send in a rolling 60 second window',
|
||||
validators=[
|
||||
DataRequired(message='Cannot be empty')
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
class ConfirmPasswordForm(StripWhitespaceForm):
|
||||
def __init__(self, validate_password_func, *args, **kwargs):
|
||||
self.validate_password_func = validate_password_func
|
||||
|
||||
@@ -38,6 +38,7 @@ from app.main.forms import (
|
||||
LinkOrganisationsForm,
|
||||
MessageLimit,
|
||||
PreviewBranding,
|
||||
RateLimit,
|
||||
RenameServiceForm,
|
||||
SearchByNameForm,
|
||||
ServiceContactDetailsForm,
|
||||
@@ -956,6 +957,23 @@ def set_message_limit(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/service-settings/set-rate-limit", methods=['GET', 'POST'])
|
||||
@user_is_platform_admin
|
||||
def set_rate_limit(service_id):
|
||||
|
||||
form = RateLimit(rate_limit=current_service.rate_limit)
|
||||
|
||||
if form.validate_on_submit():
|
||||
current_service.update(rate_limit=form.rate_limit.data)
|
||||
|
||||
return redirect(url_for('.service_settings', service_id=service_id))
|
||||
|
||||
return render_template(
|
||||
'views/service-settings/set-rate-limit.html',
|
||||
form=form,
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/service-settings/set-email-branding", methods=['GET', 'POST'])
|
||||
@user_is_platform_admin
|
||||
def service_set_email_branding(service_id):
|
||||
|
||||
@@ -37,6 +37,7 @@ class Service(JSONModel):
|
||||
'inbound_api',
|
||||
'letter_branding',
|
||||
'message_limit',
|
||||
'rate_limit',
|
||||
'name',
|
||||
'prefix_sms',
|
||||
'research_mode',
|
||||
|
||||
@@ -317,6 +317,7 @@ class HeaderNavigation(Navigation):
|
||||
'services_or_dashboard',
|
||||
'set_free_sms_allowance',
|
||||
'set_message_limit',
|
||||
'set_rate_limit',
|
||||
'set_sender',
|
||||
'set_template_sender',
|
||||
'show_accounts_or_dashboard',
|
||||
@@ -505,6 +506,7 @@ class MainNavigation(Navigation):
|
||||
'service_sms_senders',
|
||||
'set_free_sms_allowance',
|
||||
'set_message_limit',
|
||||
'set_rate_limit',
|
||||
'service_set_letter_branding',
|
||||
'submit_request_to_go_live',
|
||||
},
|
||||
@@ -972,6 +974,7 @@ class CaseworkNavigation(Navigation):
|
||||
'services_or_dashboard',
|
||||
'set_free_sms_allowance',
|
||||
'set_message_limit',
|
||||
'set_rate_limit',
|
||||
'service_set_letter_branding',
|
||||
'set_sender',
|
||||
'set_template_sender',
|
||||
@@ -1285,6 +1288,7 @@ class OrgNavigation(Navigation):
|
||||
'services_or_dashboard',
|
||||
'set_free_sms_allowance',
|
||||
'set_message_limit',
|
||||
'set_rate_limit',
|
||||
'service_set_letter_branding',
|
||||
'set_sender',
|
||||
'set_template_sender',
|
||||
|
||||
@@ -353,6 +353,11 @@
|
||||
{% endcall %}
|
||||
{{ edit_field('Change', url_for('.link_service_to_organisation', service_id=current_service.id), suffix='organisation for service') }}
|
||||
{% endcall %}
|
||||
{% call row() %}
|
||||
{{ text_field('Rate limit')}}
|
||||
{{ text_field('{:,} per minute'.format(current_service.rate_limit)) }}
|
||||
{{ edit_field('Change', url_for('.set_rate_limit', service_id=current_service.id), suffix='rate limit') }}
|
||||
{% endcall %}
|
||||
{% call row() %}
|
||||
{{ text_field('Message limit')}}
|
||||
{{ text_field('{:,} per day'.format(current_service.message_limit)) }}
|
||||
|
||||
21
app/templates/views/service-settings/set-rate-limit.html
Normal file
21
app/templates/views/service-settings/set-rate-limit.html
Normal file
@@ -0,0 +1,21 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/page-header.html" import page_header %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Set rate limit
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
{% call form_wrapper() %}
|
||||
{{ page_header(
|
||||
'Rate limit',
|
||||
back_link=url_for('.service_settings', service_id=current_service.id)
|
||||
) }}
|
||||
{{ form.rate_limit }}
|
||||
{{ page_footer('Save') }}
|
||||
{% endcall %}
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user