- 编写代码,注意需要继承 DefaultSimpleValidationFilter 类
package ext.plm.filter;
import com.ptc.core.ui.validation.*;
import ext.plm.propertiesConfig.CtPropertiesConfig;
import ext.plm.propertiesConfig.CtPropertiesConfigManger;
import wt.org.WTPrincipal;
import wt.org.WTUser;
import wt.session.SessionHelper;
import java.util.Arrays;
public class CtProjectReportFilter extends DefaultSimpleValidationFilter {
@Override
public UIValidationStatus preValidateAction(UIValidationKey arg0, UIValidationCriteria arg1) {
UIValidationStatus status = UIValidationStatus.HIDDEN;
UIValidationResultSet resultSet = new UIValidationResultSet();
try {
CtPropertiesConfig properties = CtPropertiesConfigManger.getInstance().getProperties("CtProjectReportVisibleUser.properties");
String users = properties.getStringValue("users");
String[] usersArray = users.split(",");
WTPrincipal principal = SessionHelper.manager.getPrincipal();
WTUser wtuser = (WTUser) principal;//当前用户
boolean isVisibleUser = false;
if (Arrays.asList(usersArray).contains(wtuser.getName())) {
isVisibleUser = true;
}
if (isVisibleUser) {
status = UIValidationStatus.ENABLED;
}
} catch (Exception e) {
e.printStackTrace();
status = UIValidationStatus.HIDDEN;
}
return status;
}
}
- .xconf 文件中注册上述过滤器(如果此.xconf文件没有被site.xconf文件引用,需要在site.xconf文件中引用)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configuration
SYSTEM "xconf.dtd">
<Configuration>
<!-- 配置项目报表过滤器 -->
<Property name="wt.services/svc/default/com.ptc.core.ui.validation.SimpleValidationFilter/CtProjectReportFilter/null/0"
overridable="true"
targetFile="codebase/com/ptc/windchill/enterprise/enterprise.service.properties"
value="ext.plm.filter.CtProjectReportFilter"/>
</Configuration>
执行 xconfmanager -p命令
3. 指定action使用上述过滤器
<!--项目报表-->
<objecttype name="projectReport">
<!-- 售前项目 -->
<action name="preSalesProject">
<includeFilter name="CtProjectReportFilter"/>
<command url="netmarkets/jsp/ext/plm/preSales/ctPreSalesProjectPlugin.jsp" windowType="popup"/>
</action>
<!-- 项目状态汇总 -->
<action name="projectStatusSummary">
<includeFilter name="CtProjectReportFilter"/>
<command url="netmarkets/jsp/ext/plm/projectBiweeklyReport/ctProjectStatusSummaryPlugin.jsp"
windowType="popup"/>
</action>
</objecttype>
- 重启系统