Пример #1
0
 def getDocs(self):
     is_admin = session.is_admin()
     doc = {
         "name" : self.name,
         "description" : self.desc,
         "paths" : {}
     }
     for name, obj in inspect.getmembers(self, inspect.isclass):
         desc = obj.desc if hasattr(obj, "desc") else ""
         docs = obj.docs if hasattr(obj, "docs") else []
         docs = [d.lower() for d in docs]
         path = self.path + obj.path if hasattr(obj, "path") else ""
         params = obj.params if hasattr(obj, "params") else {}
         methods = {}
         for name, obj in inspect.getmembers(obj, inspect.ismethod):
             name = name.lower()
             if name in ["get", "post", "put", "delete", "head", "trace", "options"]:
                 document = name in docs
                 m_params = params[name] if name in params else {}
                 if is_admin or document:
                     methods[name] = m_params
         if len(methods) > 0:
             doc["paths"][path] = methods
     if len(doc["paths"]) > 0:
         return doc
     return None
Пример #2
0
 def admin_func(handler, *args):
     if session.is_admin():
         func(handler, *args)
     else:
         handler.failure(code=401)