fix project|use|role-list error
[osm/NBI.git] / osm_nbi / admin_topics.py
index 998c12f..7e71459 100644 (file)
@@ -812,7 +812,7 @@ class UserTopicAuth(UserTopic):
         except ValidationError as e:
             raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
 
-    def list(self, session, filter_q=None):
+    def list(self, session, filter_q=None, api_req=False):
         """
         Get a list of the topic that matches a filter
         :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
@@ -982,7 +982,7 @@ class ProjectTopicAuth(ProjectTopic):
         else:
             raise EngineException("Project not found", HTTPStatus.NOT_FOUND)
 
-    def list(self, session, filter_q=None):
+    def list(self, session, filter_q=None, api_req=False):
         """
         Get a list of the topic that matches a filter
 
@@ -1078,9 +1078,9 @@ class RoleTopicAuth(BaseTopic):
             if role_def[-1] == ":":
                 raise ValidationError("Operation cannot end with ':'")
 
-            role_def_matches = [op for op in operations if op.startswith(role_def)]
+            match = next((op for op in operations if op == role_def or op.startswith(role_def + ":")), None)
 
-            if len(role_def_matches) == 0:
+            if not match:
                 raise ValidationError("Invalid permission '{}'".format(role_def))
 
     def _validate_input_new(self, input, force=False):
@@ -1248,7 +1248,7 @@ class RoleTopicAuth(BaseTopic):
             raise AuthconnConflictException("Found more than one role with filter {}".format(filter_q))
         return roles[0]
 
-    def list(self, session, filter_q=None):
+    def list(self, session, filter_q=None, api_req=False):
         """
         Get a list of the topic that matches a filter