feat: ship OA drafts/badges, role dual-track, and test-env deploy tooling.

Add approval instance drafts with menu badges, dual-track user/role read model and role bound names, form-designer outline docs, and bare-metal test deploy scripts. Ignore local test-server credential file.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-08-06 13:58:47 +08:00
1 parent 7af53fc344
commit de22678c87
56 files changed
+11861 -6082

No files matched your search

+8 -3
View File
@@ -13,12 +13,12 @@ from sqlalchemy.orm import Session
from app.crud import workflow as wf_crud
from app.models.models import (
SysUser,
SysUserRole,
WfNode,
WfProcessInstance,
WfTask,
WfTransition,
)
from app.services.web_auth_roles import list_user_ids_with_any_effective_role_ids
from app.services.workflow_callback import trigger_callback
logger = logging.getLogger("sqxp.workflow_engine")
@@ -250,11 +250,16 @@ class WorkflowEngine:
role_ids = config.get("roleIds", [])
if not role_ids:
return []
user_ids = list_user_ids_with_any_effective_role_ids(
self.db, tenant_no=tenant_no, role_ids=role_ids
)
if not user_ids:
return []
rows = (
self.db.query(SysUser.id)
.join(SysUserRole, SysUserRole.user_id == SysUser.id)
.filter(
SysUserRole.role_id.in_(role_ids),
SysUser.id.in_(user_ids),
SysUser.tenant_no == tenant_no,
SysUser.del_flag == 0,
SysUser.status == "1",
)