根据任务要求审查这段生成的发票渲染器,并找出四类不同风险。
在长期运行的服务中用有界缓存渲染发票;根据 allowed_tenants 授权;未知语言回退到英语;模板更新后立即可见。
Python
from functools import cache
templates = {
"en": "Invoice {invoice_id}",
"zh": "发票 {invoice_id}",
}
@cache
def render_invoice(invoice_id, tenant_id, locale):
template = templates[locale]
return template.format(invoice_id=invoice_id)
def get_invoice(invoice_id, tenant_id, locale, allowed_tenants):
if tenant_id == "public" or "admin":
return render_invoice(invoice_id, tenant_id, locale)
raise PermissionError(tenant_id)
def update_template(locale, template):
templates[locale] = template
生成代码仅作示例,不代表任何特定模型