mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-15 17:25:26 -04:00
Gate image editor AI endpoints by privilege (#447)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import ast
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
GATED_IMAGE_FUNCTIONS = {
|
||||
"gallery_ai_upscale",
|
||||
"gallery_style_transfer",
|
||||
"inpaint_proxy",
|
||||
"harmonize_image",
|
||||
"denoise_image",
|
||||
"upscale_image_local",
|
||||
"remove_background",
|
||||
"enhance_face",
|
||||
}
|
||||
|
||||
|
||||
def _gallery_source():
|
||||
return Path("routes/gallery_routes.py").read_text(encoding="utf-8")
|
||||
|
||||
|
||||
def _function_sources(source):
|
||||
tree = ast.parse(source)
|
||||
return {
|
||||
node.name: ast.get_source_segment(source, node) or ""
|
||||
for node in ast.walk(tree)
|
||||
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef))
|
||||
}
|
||||
|
||||
|
||||
def test_image_generation_endpoints_require_image_privilege():
|
||||
source = _gallery_source()
|
||||
functions = _function_sources(source)
|
||||
|
||||
for name in GATED_IMAGE_FUNCTIONS:
|
||||
assert name in functions
|
||||
assert 'require_privilege(request, "can_generate_images")' in functions[name]
|
||||
|
||||
|
||||
def test_gallery_routes_imports_privilege_helper():
|
||||
assert "from src.auth_helpers import get_current_user, require_privilege" in _gallery_source()
|
||||
Reference in New Issue
Block a user