diff --git a/ietf/ietfauth/views.py b/ietf/ietfauth/views.py index 11348e9be..a85b5b864 100644 --- a/ietf/ietfauth/views.py +++ b/ietf/ietfauth/views.py @@ -728,7 +728,7 @@ def apikey_index(request): @login_required @person_required def apikey_create(request): - endpoints = [('', '----------')] + [ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES if r==None or has_role(request.user, r) ] + endpoints = [('', '----------')] + list(set([ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES if r==None or has_role(request.user, r) ])) class ApiKeyForm(forms.ModelForm): endpoint = forms.ChoiceField(choices=endpoints) diff --git a/ietf/person/migrations/0019_auto_20210604_1443.py b/ietf/person/migrations/0019_auto_20210604_1443.py new file mode 100644 index 000000000..432f7541d --- /dev/null +++ b/ietf/person/migrations/0019_auto_20210604_1443.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.20 on 2021-06-04 14:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('person', '0018_auto_20201109_0439'), + ] + + operations = [ + migrations.AlterField( + model_name='personalapikey', + name='endpoint', + field=models.CharField(choices=[('/api/iesg/position', '/api/iesg/position'), ('/api/meeting/session/video/url', '/api/meeting/session/video/url'), ('/api/notify/meeting/bluesheet', '/api/notify/meeting/bluesheet'), ('/api/notify/meeting/registration', '/api/notify/meeting/registration'), ('/api/v2/person/person', '/api/v2/person/person')], max_length=128), + ), + ] diff --git a/ietf/person/models.py b/ietf/person/models.py index 33414cab4..1f1569d56 100644 --- a/ietf/person/models.py +++ b/ietf/person/models.py @@ -242,7 +242,7 @@ class Person(models.Model): def available_api_endpoints(self): from ietf.ietfauth.utils import has_role - return [ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES if r==None or has_role(self.user, r) ] + return list(set([ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES if r==None or has_role(self.user, r) ])) class PersonExtResource(models.Model): @@ -354,7 +354,7 @@ PERSON_API_KEY_VALUES = [ ("/api/notify/meeting/registration", "/api/notify/meeting/registration", "Robot"), ("/api/notify/meeting/bluesheet", "/api/notify/meeting/bluesheet", "Recording Manager"), ] -PERSON_API_KEY_ENDPOINTS = [ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES ] +PERSON_API_KEY_ENDPOINTS = sorted(list(set([ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES ]))) class PersonalApiKey(models.Model): person = ForeignKey(Person, related_name='apikeys')