Browse Source

chore: support tenant

master
wangxiang 2 years ago
parent
commit
0cd78bb372
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 5
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java
  2. 3
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/interceptor/ModelHandlerInterceptor.java
  3. 40
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/override/UiTenantProvider.java

5
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java

@ -24,6 +24,7 @@ import org.flowable.bpmn.model.BpmnModel;
import org.flowable.engine.RepositoryService; import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.Deployment; import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.idm.api.User;
import org.flowable.idm.engine.impl.persistence.entity.UserEntity; import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
import org.flowable.idm.engine.impl.persistence.entity.UserEntityImpl; import org.flowable.idm.engine.impl.persistence.entity.UserEntityImpl;
import org.flowable.ui.common.security.SecurityUtils; import org.flowable.ui.common.security.SecurityUtils;
@ -171,8 +172,8 @@ public class WorkflowModelController {
// 查询模型进行比较处理 // 查询模型进行比较处理
Model model = this.modelService.getModel(modelId); Model model = this.modelService.getModel(modelId);
KiccUser currentUser = com.cloud.kicc.common.security.util.SecurityUtils.getUser(); User flowableUser = SecurityUtils.getCurrentUserObject();
boolean currentUserIsOwner = model.getLastUpdatedBy().equals(currentUser.getId()); boolean currentUserIsOwner = model.getLastUpdatedBy().equals(flowableUser.getId());
String resolveAction = values.getFirst("conflictResolveAction"); String resolveAction = values.getFirst("conflictResolveAction");
// 版本校验(如果此时你在修改模型时别人提交了你的模型版本,如果没有版本校验就会出问题) // 版本校验(如果此时你在修改模型时别人提交了你的模型版本,如果没有版本校验就会出问题)
if (model.getLastUpdated().getTime() != lastUpdated) { if (model.getLastUpdated().getTime() != lastUpdated) {

3
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/interceptor/ModelHandlerInterceptor.java

@ -32,6 +32,9 @@ public class ModelHandlerInterceptor implements HandlerInterceptor {
user.setId(kiccUser.getId()); user.setId(kiccUser.getId());
user.setFirstName(kiccUser.getUsername()); user.setFirstName(kiccUser.getUsername());
user.setLastName(""); user.setLastName("");
user.setTenantId(kiccUser.getTenantId());
user.setEmail(kiccUser.getEmail());
user.setDisplayName(kiccUser.getNickName());
SecurityUtils.assumeUser(user); SecurityUtils.assumeUser(user);
} }
return true; return true;

40
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/override/UiTenantProvider.java

@ -0,0 +1,40 @@
package com.cloud.kicc.workflow.override;
import org.flowable.idm.api.User;
import org.flowable.ui.common.security.SecurityUtils;
import org.flowable.ui.common.tenant.TenantProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
/**
*<p>
* ui建模租户ID提供
*</p>
*
* @Author: wangxiang4
* @Since: 2023/9/27
*/
@Primary
@Component
public class UiTenantProvider implements TenantProvider {
private static final Logger LOGGER = LoggerFactory.getLogger(UiTenantProvider.class);
@Override
public String getTenantId() {
User flowableUser = SecurityUtils.getCurrentUserObject();
if(flowableUser != null) {
// quotes can help solve whitespace issues, trimming here would not
// help solve the problem at source which is in user database
LOGGER.debug("Using user tenantId: '{}'", flowableUser.getTenantId());
return flowableUser.getTenantId();
}
LOGGER.debug("No tenantId");
return null;
}
}
Loading…
Cancel
Save