release: FL 2.0 候选(C01 记账边界+P2-2 认领协议+D10 变量契约+D11 资格终审+D09 激活代次+T01/T03/T04/T05)
按《FL最终代码审计与上线阻断清单》194 项已审计工作树形成候选,基座 = origin/main 11e0778。
- 源码/测试/资源:沿用已审计工作树内容(96 项相对远端为新增或更新),含未跟踪实现
CallbackFactStore、CallbackSourcePolicy、VariableContract、FormalApplyCommandService、
FlowActorContextGate 等;C01 续验夹具修正一并入内。
- CI:保留远端 11e0778 的门禁强化(CI_SOURCE_SHA 核对、容器回收验证、空 schema 反向门禁、
main ref 才推镜像);ci/flow-test-schema.sql 按当前实体重新生成(14→20 表,补 6 新表与
6 新列,回调日志复合唯一键 uk_flw_log_event_reg),workflow 表数断言同步 14→20。
- 依据:docs/tasks/evidence/FL-final-audit-20261027(194 项哈希/版本核对)。
This commit is contained in:
@@ -109,6 +109,46 @@ public class FlowAdminController {
|
||||
return appAdminService.stats(adminGuard.requireAdmin(user, null));
|
||||
}
|
||||
|
||||
// ==================== 应用使用授权(T01) ====================
|
||||
|
||||
/**
|
||||
* 使用授权管理面(字段注入:构造被既有单测逐位钉住,同 formCenterCatalogClient 先例)。
|
||||
* 授权对象是稳定应用主体(UserBase appId),非 appKey 凭据;撤权只拦新发起。
|
||||
*/
|
||||
@org.springframework.beans.factory.annotation.Autowired
|
||||
private com.yunhai.flowcenter.service.FlowUsageGrantAdminService usageGrantAdminService;
|
||||
|
||||
/** 某流程线的使用授权清单(含已撤销行,审计可见) */
|
||||
@GetMapping("/usage-grant/list")
|
||||
public List<com.yunhai.flowcenter.entity.FlwUsageGrant> usageGrantList(
|
||||
BoaUser user, @RequestParam("flowGuid") String flowGuid) {
|
||||
return usageGrantAdminService.listByFlow(adminGuard.requireAdmin(user, null), flowGuid);
|
||||
}
|
||||
|
||||
/** 授予/重申使用授权(appKey 当场解析为 UserBase 稳定主体落库;enforce 开启时校学校开通) */
|
||||
@PostMapping("/usage-grant/grant")
|
||||
public com.yunhai.flowcenter.entity.FlwUsageGrant usageGrantGrant(
|
||||
BoaUser user, @RequestBody Map<String, Object> body) {
|
||||
Long schId = adminGuard.requireAdmin(user, null);
|
||||
return usageGrantAdminService.grant(schId,
|
||||
body.get("flowGuid") == null ? null : String.valueOf(body.get("flowGuid")),
|
||||
body.get("appKey") == null ? null : String.valueOf(body.get("appKey")),
|
||||
body.get("remark") == null ? null : String.valueOf(body.get("remark")),
|
||||
user.getName());
|
||||
}
|
||||
|
||||
/** 撤销使用授权(enabled=0 行保留;只拦新发起,在途与已受理命令不受影响) */
|
||||
@PostMapping("/usage-grant/revoke")
|
||||
public com.yunhai.flowcenter.entity.FlwUsageGrant usageGrantRevoke(
|
||||
BoaUser user, @RequestBody Map<String, Object> body) {
|
||||
Long schId = adminGuard.requireAdmin(user, null);
|
||||
return usageGrantAdminService.revoke(schId,
|
||||
body.get("flowGuid") == null ? null : String.valueOf(body.get("flowGuid")),
|
||||
body.get("appId") == null ? null : Integer.valueOf(String.valueOf(body.get("appId"))),
|
||||
body.get("remark") == null ? null : String.valueOf(body.get("remark")),
|
||||
user.getName());
|
||||
}
|
||||
|
||||
@GetMapping("/def/get")
|
||||
public FlwDef defGet(BoaUser user, @RequestParam("id") Long id) {
|
||||
return defAdminService.get(adminGuard.requireAdmin(user, null), id);
|
||||
@@ -191,6 +231,24 @@ public class FlowAdminController {
|
||||
return defAdminService.versions(adminGuard.requireAdmin(user, null), flowGuid);
|
||||
}
|
||||
|
||||
// ==================== 线级停发/恢复(T03) ====================
|
||||
|
||||
/** 线级停发:整条 flowGuid 停止新发起/预览;在途实例按原版本跑完不受影响 */
|
||||
@PostMapping("/def/offlineLine")
|
||||
public int defOfflineLine(BoaUser user, @RequestBody Map<String, Object> body) {
|
||||
Long schId = adminGuard.requireAdmin(user, null);
|
||||
return defAdminService.offlineLine(schId,
|
||||
body.get("flowGuid") == null ? null : String.valueOf(body.get("flowGuid")));
|
||||
}
|
||||
|
||||
/** 线级恢复:只恢复线可用性,不改写任何版本状态或发布内容 */
|
||||
@PostMapping("/def/enableLine")
|
||||
public int defEnableLine(BoaUser user, @RequestBody Map<String, Object> body) {
|
||||
Long schId = adminGuard.requireAdmin(user, null);
|
||||
return defAdminService.enableLine(schId,
|
||||
body.get("flowGuid") == null ? null : String.valueOf(body.get("flowGuid")));
|
||||
}
|
||||
|
||||
/** 在途办件数(议题二④):flowGuids 逗号分隔,去重后最多 100;返回 flowGuid → 审批中办件数(无在途也返 0 键) */
|
||||
@GetMapping("/def/inflight")
|
||||
public Map<String, Long> defInflight(BoaUser user, @RequestParam("flowGuids") String flowGuids) {
|
||||
|
||||
Reference in New Issue
Block a user