mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 05:59:44 -04:00
Added a validator so that the key name is unique per service.
This commit is contained in:
@@ -238,4 +238,14 @@ class ConfirmMobileNumberForm(Form):
|
||||
|
||||
|
||||
class CreateKeyForm(Form):
|
||||
key_name = StringField(u'Description of key')
|
||||
def __init__(self, existing_key_names=[], *args, **kwargs):
|
||||
self.existing_key_names = existing_key_names
|
||||
super(CreateKeyForm, self).__init__(*args, **kwargs)
|
||||
|
||||
key_name = StringField(u'Description of key', validators=[
|
||||
DataRequired(message='You need to give the key a name')
|
||||
])
|
||||
|
||||
def validate_key_name(self, key_name):
|
||||
if key_name.data in self.existing_key_names:
|
||||
raise ValidationError('A key with this name already exists')
|
||||
|
||||
@@ -24,7 +24,10 @@ def api_keys(service_id):
|
||||
@main.route("/services/<int:service_id>/api-keys/create", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def create_api_key(service_id):
|
||||
form = CreateKeyForm()
|
||||
key_names = [
|
||||
key['name'] for key in api_key_api_client.get_api_keys(service_id=service_id)['apiKeys']
|
||||
]
|
||||
form = CreateKeyForm(key_names)
|
||||
if form.validate_on_submit():
|
||||
secret = api_key_api_client.create_api_key(service_id=service_id, key_name=form.key_name.data)
|
||||
return render_template('views/api-keys/show.html', service_id=service_id, secret=secret,
|
||||
|
||||
Reference in New Issue
Block a user