You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.2 网页内容工作流能否添加删除动作?需实现PDF文件删除审批管控

解决方案:给Liferay 7.2网页内容工作流添加删除动作审批

没问题!在Liferay 7.2里,你完全可以给现有网页内容工作流加上「删除」动作的审批控制,刚好能满足你禁止用户未经审批删除PDF文件的需求。下面是一步步的具体实现方法:

1. 修改工作流定义,添加删除审批节点

首先要调整你现有的工作流(不管是默认的Single Approval还是自定义的),新增删除动作对应的审批逻辑:

  • 打开Liferay控制面板 → 工作流 → 工作流定义
  • 找到你正在用的网页内容工作流,点击「编辑」进入BPMN可视化编辑器
  • 新增一个任务节点,命名为「删除审批」,配置好负责审批的角色或用户组(比如内容管理员组)
  • 设置触发条件:当用户执行「删除」操作时,自动进入这个审批节点
  • 配置流转规则:审批通过就执行删除操作;审批拒绝的话,取消删除操作并给发起删除的用户发通知

2. 绑定工作流与删除实体动作

接下来要确保工作流能拦截到删除操作:

  • 回到工作流 → 工作流关联
  • 找到你关联网页内容的那条工作流记录,点击「编辑」
  • 在「实体动作」区域,勾选「删除」动作,将它绑定到你刚修改好的工作流定义上
  • 保存配置后,用户尝试删除网页内容时,删除动作就会触发工作流了

3. 针对PDF文件的专属过滤(可选)

如果你只想限制PDF文件的删除审批,不想影响其他类型内容,可以加个过滤逻辑:

  • 在BPMN编辑器的启动节点后,添加一个脚本任务,用Groovy脚本判断当前内容是否为PDF:
import com.liferay.document.library.kernel.model.DLFileEntry
import com.liferay.portal.kernel.util.GetterUtil

// 获取当前操作的文件实体
DLFileEntry fileEntry = (DLFileEntry)workflowContext.get("entryClassName")
String fileMimeType = fileEntry.getMimeType()

// 判断是否为PDF,返回分支标识
if ("application/pdf".equals(fileMimeType)) {
    return "need-approval"
} else {
    return "skip-approval"
}
  • 在工作流里设置分支:如果脚本返回need-approval就进入审批节点;返回skip-approval就直接执行删除操作,不经过审批

4. 测试验证流程

最后一定要测试下整个流程是否正常:

  • 用普通用户账号尝试删除PDF文件,确认系统弹出审批请求或者直接进入待审批队列
  • 用审批角色账号登录,处理这个待审批任务,分别测试通过和拒绝两种情况,检查PDF文件的状态是否符合预期
  • 如果配置了PDF过滤,再测试下非PDF文件的删除是否不受影响

这样配置完成后,就能完美实现你想要的「禁止用户未经审批删除PDF文件」的需求啦!

内容的提问来源于stack exchange,提问作者MarioProject

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 19:42:31