feat: 默认脚本编辑弹窗+后端读写default脚本接口
This commit is contained in:
@@ -65,6 +65,34 @@ public class ScriptController {
|
||||
return ApiResponse.success(Map.of("version", v));
|
||||
}
|
||||
|
||||
/** 获取站点类型默认脚本(管理员) */
|
||||
@GetMapping("/api/v1/admin/scripts/default/{siteType}")
|
||||
public ApiResponse<Map<String, String>> getDefaultScript(@PathVariable String siteType, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
String script = GroovyScriptEngine.loadDefaultByType(siteType);
|
||||
return ApiResponse.success(Map.of("siteType", siteType, "script", script != null ? script : ""));
|
||||
}
|
||||
|
||||
/** 保存站点类型默认脚本(管理员) */
|
||||
@PutMapping("/api/v1/admin/scripts/default/{siteType}")
|
||||
public ApiResponse<Void> saveDefaultScript(
|
||||
@PathVariable String siteType,
|
||||
@RequestBody Map<String, String> payload,
|
||||
HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
String script = payload.get("script");
|
||||
if (script == null || script.isBlank()) return ApiResponse.error(400, "script is required");
|
||||
GroovyScriptEngine.saveDefaultScript(siteType, script);
|
||||
return ApiResponse.success();
|
||||
}
|
||||
|
||||
private void checkAdmin(HttpServletRequest request) {
|
||||
var level = request.getAttribute("trustLevel");
|
||||
if (level == null || !"ADMIN".equals(level.toString())) {
|
||||
throw new IllegalArgumentException("Admin permission required");
|
||||
}
|
||||
}
|
||||
|
||||
/** 上传 Groovy 脚本(PSK 签名认证) */
|
||||
@PutMapping("/api/v1/scripts/{siteId}")
|
||||
public ApiResponse<?> uploadScript(
|
||||
|
||||
Reference in New Issue
Block a user