X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fnbi.py;h=f5d229338dcf89c8a169bb209ba0a7d49585b2f1;hp=5b165442075acd8ea79e41184eb5d0d15ea9e29d;hb=f55e7ed2e70eec0de410b8d0d01858ea5c4ea851;hpb=7fd248705f1eba06d0998339af9e48e6b8ffe5c1 diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py index 5b16544..f5d2293 100644 --- a/osm_nbi/nbi.py +++ b/osm_nbi/nbi.py @@ -484,7 +484,7 @@ class Server(object): def __init__(self): self.instance += 1 self.authenticator = Authenticator(valid_url_methods, valid_query_string) - self.engine = Engine(self.authenticator.tokens_cache) + self.engine = Engine(self.authenticator) def _format_in(self, kwargs): try: @@ -716,6 +716,10 @@ class Server(object): @cherrypy.expose def test(self, *args, **kwargs): + if not cherrypy.config.get("server.enable_test") or (isinstance(cherrypy.config["server.enable_test"], str) and + cherrypy.config["server.enable_test"].lower() == "false"): + cherrypy.response.status = HTTPStatus.METHOD_NOT_ALLOWED.value + return "test URL is disabled" thread_info = None if args and args[0] == "help": return "
\ninit\nfile/download file\ndb-clear/table\nfs-clear[/folder]\nlogin\nlogin2\n"\ @@ -1128,6 +1132,11 @@ class Server(object): # if Role information changes, it is needed to reload the information of roles if topic == "roles" and method != "GET": self.authenticator.load_operation_to_allowed_roles() + + if topic == "projects" and method == "DELETE" \ + or topic in ["users", "roles"] and method in ["PUT", "PATCH", "DELETE"]: + self.authenticator.remove_token_from_cache() + return self._format_out(outdata, token_info, _format) except Exception as e: if isinstance(e, (NbiException, EngineException, DbException, FsException, MsgException, AuthException,