Commit e2ccfc05 authored by 雍欢's avatar 雍欢

如果界面元素的formFieldId不为空,则说明该界面元素是与表单字段进行的绑定,这时需要将界面元素的code替换为:field+表单字段排序

parent 990e9032
ALTER TABLE WF_APPROVALRULEHANDLERUIPERM
ADD (FORM_FIELD_ID VARCHAR2(32) );
COMMENT ON COLUMN WF_APPROVALRULEHANDLERUIPERM.FORM_FIELD_ID IS '表单字段id';
......@@ -5,7 +5,11 @@ import javax.persistence.Entity;
import javax.persistence.Table;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "WF_ApprovalRuleHandlerUIPerm")
public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity {
......@@ -23,59 +27,23 @@ public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity {
/**
* 字段类型
*/
@Column(name="kind_id")
@Column(name = "kind_id")
private String kindId;
/**
* 字段权限
*/
@Column(name="operation_id")
@Column(name = "operation_id")
private String operationId;
/**
* 排序号
*/
private Integer sequence;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getKindId() {
return kindId;
}
public void setKindId(String kindId) {
this.kindId = kindId;
}
public String getOperationId() {
return operationId;
}
public void setOperationId(String operationId) {
this.operationId = operationId;
}
public Integer getSequence() {
return sequence;
}
public void setSequence(Integer sequence) {
this.sequence = sequence;
}
/**
* 表单字段id
*/
@Column(name = "form_field_id")
private String formFieldId;
}
......@@ -359,6 +359,10 @@
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>com.huigou</groupId>
<artifactId>huigou-form</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
......@@ -393,4 +397,4 @@
</plugins>
</build>
</project>
\ No newline at end of file
</project>
package com.huigou.uasp.bmp.intercept;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.huigou.context.ContextUtil;
import com.huigou.context.Operator;
import com.huigou.context.ThreadLocalUtil;
import com.huigou.exception.ApplicationException;
import com.huigou.uasp.bmp.operator.OperatorUIElementPermissionBuilder;
import com.huigou.uasp.bpm.event.ProcessEventContext;
import com.huigou.uasp.form.domain.model.FormAttribute;
import com.huigou.uasp.form.repository.FormAttributeRepository;
import com.huigou.uasp.log.application.LogApplication;
import com.huigou.uasp.log.aspect.BizLogBuilder;
import com.huigou.uasp.log.domain.model.BizLog;
......@@ -25,31 +16,39 @@ import com.huigou.util.ClassHelper;
import com.huigou.util.Constants;
import com.huigou.util.SpringBeanFactory;
import com.huigou.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 系统权限获取 页面元素使用
*
*
* @author xx
*/
public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
@Autowired
private LogApplication logApplication;
@Autowired
private FormAttributeRepository formAttributeRepository;
private OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder;
public void setOperatorUIElementPermissionBuilder(OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder) {
this.operatorUIElementPermissionBuilder = operatorUIElementPermissionBuilder;
}
@Autowired
private LogApplication logApplication;
/**
* 字段及按钮权限处理
*
* @author
*
* @param permissions
* @param map
* @param functionCode
* void
*/
private void handlePermission(Collection<Map<String, Object>> permissions, HttpServletRequest request) {
if (permissions != null && permissions.size() > 0) {
......@@ -58,9 +57,18 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
Map<String, Object> noaccessDetail = new HashMap<String, Object>(permissions.size());
String code = "", operationId = "", uiElmentKindId = "";
for (Map<String, Object> m : permissions) {
// 如果界面元素的formFieldId不为空,则说明该界面元素是与表单字段进行的绑定,这时需要将界面元素的code替换为:field+表单字段排序
String formFieldId = (String) m.get("formFieldId");
if (StringUtils.isNotBlank(formFieldId)) {
FormAttribute formField = formAttributeRepository.findOne(formFieldId);
if (formField != null) {
m.put("code", String.format("field%d", formField.getSequence()));
}
}
code = ClassHelper.convert(m.get("code"), String.class);
operationId = ClassHelper.convert(m.get("operationId"), String.class, "");
uiElmentKindId = ClassHelper.convert(m.get("kindId"), String.class, "");
// 判读输入的key 是否为 noaccess
if (!StringUtil.isBlank(code) && operationId.equals("noaccess")) {
if (uiElmentKindId.equals("0")) {// fieldType.equals("0")主集字段
......@@ -95,8 +103,8 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
if (!StringUtil.isBlank(func)) {
try {
List<Map<String, Object>> permissions = operatorUIElementPermissionBuilder.queryUIElementPermissionsByFunction(func,
operator.getUserId(),
!StringUtil.isBlank(functionId));
operator.getUserId(),
!StringUtil.isBlank(functionId));
handlePermission(permissions, request);
// 记录访问日志
BizLog bizLog = SpringBeanFactory.getBean(request.getSession().getServletContext(), "bizLog", BizLog.class);
......
......@@ -30,7 +30,8 @@
<easy-search name="formField" desc="表单字段权限选择">
<sql>
select fa.attr_code code,
select fa.id form_field_id,
fa.attr_code code,
fa.attr_name name,
f.form_no,
0 field_type,
......@@ -40,7 +41,6 @@
from saf_form_attribute fa join saf_form_list f on fa.form_id=f.id
where f.form_no=:formNo
</sql>
<field name="id" code="id" type='hidden' />
<field name="kindId" code="kindId" type='hidden' />
<field name="operationId" code="operationId" type='hidden' />
<field name="编码" code="code" width="150" />
......@@ -48,6 +48,7 @@
<field name="类别" code="fieldTypeTextView" width="60" type='dictionary' />
<field name="默认权限" code="fieldAuthorityTextView" width="80" type='dictionary' />
<field name="formNo" code="formNo" type='hidden' />
<field name="formFieldId" code="formFieldId" type='hidden' />
</easy-search>
</easy-search-mappings>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jdbcDao" class="com.huigou.data.jdbc.impl.JDBCDaoImpl">
......@@ -24,12 +24,12 @@
<bean id="generalRepository" class="com.huigou.data.repository.GeneralRepository">
</bean>
<bean id="commonDomainService" class="com.huigou.data.domain.service.CommonDomainService">
<property name="generalRepository" ref="generalRepository" />
<property name="sqlExecutorDao" ref="sqlExecutorDao" />
</bean>
<bean id="sqlBuilder" class="com.huigou.data.query.parser.impl.SQLBuilderImpl">
<property name="permissionBuilder" ref="queryPermissionBuilder" />
</bean>
......@@ -38,4 +38,4 @@
<property name="basePackage" value="com.huigou.**.mapper"/>
<property name="sqlExecutorBeanName" value="sqlExecutorDao" />
</bean>
</beans>
\ No newline at end of file
</beans>
......@@ -331,7 +331,7 @@ function initAddFormFieldPermissionHandler() {
$("#uiElementPermissionDiv #toolbar_menuaddFormFieldHandler").comboDialog({
type: 'opm',
name: 'formField',
dataIndex: 'code',
dataIndex: 'form_field_id',
width: 800,
lock: false,
checkbox: true,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment