diff --git a/osm_nbi/admin_topics.py b/osm_nbi/admin_topics.py index 0803ad602ad37e7e2a68abb6143011b376483689..b4f89809024be856c2f705842aefae0f04861b4f 100644 --- a/osm_nbi/admin_topics.py +++ b/osm_nbi/admin_topics.py @@ -1159,6 +1159,15 @@ class UserTopicAuth(UserTopic): # set if indata.get("project_role_mappings"): + duplicates = [] + for pr in indata.get("project_role_mappings"): + if pr not in duplicates: + duplicates.append(pr) + if len(indata.get("project_role_mappings")) > len(duplicates): + raise EngineException( + "Project-role combination should not be repeated", + http_code=HTTPStatus.UNPROCESSABLE_ENTITY, + ) for to_set in indata["project_role_mappings"]: for mapping in original_mapping: if to_set["project"] in (