[0.5.2] /halfapi/acls crash if acl attribute does not exist on a route
This commit is contained in:
parent
3fb6fb4ded
commit
eb68d06ac0
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
__version__ = '0.5.1'
|
||||
__version__ = '0.5.2'
|
||||
|
||||
def version():
|
||||
return f'HalfAPI version:{__version__}'
|
||||
|
|
|
@ -6,7 +6,7 @@ lib/domain.py The domain-scoped utility functions
|
|||
import sys
|
||||
import importlib
|
||||
import logging
|
||||
from types import ModuleType
|
||||
from types import ModuleType, FunctionType
|
||||
from typing import Generator, Dict, List
|
||||
|
||||
logger = logging.getLogger("uvicorn.asgi")
|
||||
|
@ -188,6 +188,9 @@ def router_acls(route_params: Dict, path: List, m_router: ModuleType) -> Generat
|
|||
else:
|
||||
for param in params:
|
||||
acl = param.get('acl')
|
||||
if not isinstance(acl, FunctionType):
|
||||
continue
|
||||
|
||||
yield acl.__name__, acl
|
||||
|
||||
|
||||
|
|
|
@ -169,6 +169,9 @@ def api_acls(request):
|
|||
for domain, m_domain in domains.items():
|
||||
res[domain] = {}
|
||||
for acl_name, fct in domain_acls(m_domain, [domain]):
|
||||
if not isinstance(fct, FunctionType):
|
||||
continue
|
||||
|
||||
fct_result = fct.__doc__.strip() if doc and fct.__doc__ else fct(request)
|
||||
if acl_name in res[domain]:
|
||||
continue
|
||||
|
|
Loading…
Reference in New Issue