mirror of
https://github.com/langgenius/dify.git
synced 2026-05-15 04:00:46 -04:00
26 lines
768 B
Python
26 lines
768 B
Python
from collections.abc import Callable
|
|
from functools import wraps
|
|
|
|
from flask import request
|
|
from werkzeug.exceptions import Unauthorized
|
|
|
|
from configs import dify_config
|
|
from libs.token import extract_access_token
|
|
|
|
|
|
def admin_required[**P, R](view: Callable[P, R]) -> Callable[P, R]:
|
|
@wraps(view)
|
|
def decorated(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
if not dify_config.ADMIN_API_KEY:
|
|
raise Unauthorized("API key is invalid.")
|
|
|
|
auth_token = extract_access_token(request)
|
|
if not auth_token:
|
|
raise Unauthorized("Authorization header is missing.")
|
|
if auth_token != dify_config.ADMIN_API_KEY:
|
|
raise Unauthorized("API key is invalid.")
|
|
|
|
return view(*args, **kwargs)
|
|
|
|
return decorated
|