|
@@ -17,14 +17,15 @@
|
|
|
|
|
|
package org.apache.dolphinscheduler.api.service.impl;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.fasterxml.jackson.databind.SerializationFeature;
|
|
|
-import com.google.common.base.Joiner;
|
|
|
-import com.google.common.io.Files;
|
|
|
-import org.apache.commons.beanutils.BeanMap;
|
|
|
-import org.apache.commons.collections.CollectionUtils;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.ALIAS;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.CONTENT;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.EMPTY_STRING;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.FOLDER_SEPARATOR;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.FORMAT_SS;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.FORMAT_S_S;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.JAR;
|
|
|
+import static org.apache.dolphinscheduler.common.Constants.PERIOD;
|
|
|
+
|
|
|
import org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant;
|
|
|
import org.apache.dolphinscheduler.api.dto.resources.ResourceComponent;
|
|
|
import org.apache.dolphinscheduler.api.dto.resources.filter.ResourceFilter;
|
|
@@ -56,15 +57,11 @@ import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
|
|
|
import org.apache.dolphinscheduler.dao.mapper.UdfFuncMapper;
|
|
|
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
|
|
|
import org.apache.dolphinscheduler.dao.utils.ResourceProcessDefinitionUtils;
|
|
|
-import org.apache.dolphinscheduler.api.permission.ResourcePermissionCheckService;
|
|
|
import org.apache.dolphinscheduler.spi.enums.ResourceType;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.dao.DuplicateKeyException;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import org.apache.commons.beanutils.BeanMap;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.rmi.ServerException;
|
|
@@ -83,14 +80,19 @@ import java.util.UUID;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.ALIAS;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.CONTENT;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.EMPTY_STRING;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.FOLDER_SEPARATOR;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.FORMAT_SS;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.FORMAT_S_S;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.JAR;
|
|
|
-import static org.apache.dolphinscheduler.common.Constants.PERIOD;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.dao.DuplicateKeyException;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.fasterxml.jackson.databind.SerializationFeature;
|
|
|
+import com.google.common.base.Joiner;
|
|
|
+import com.google.common.io.Files;
|
|
|
|
|
|
|
|
|
* resources service impl
|
|
@@ -121,8 +123,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
@Autowired(required = false)
|
|
|
private StorageOperate storageOperate;
|
|
|
|
|
|
- @Autowired
|
|
|
- private ResourcePermissionCheckService resourcePermissionCheckService;
|
|
|
|
|
|
|
|
|
* create directory
|
|
@@ -146,7 +146,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
Result<Object> result = new Result<>();
|
|
|
String funcPermissionKey = type.equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FOLDER_ONLINE_CREATE : ApiFuncIdentificationConstant.UDF_FOLDER_ONLINE_CREATE;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, null, AuthorizationType.RESOURCE_FILE_ID, funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -227,7 +227,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
Result<Object> result = new Result<>();
|
|
|
String funcPermissionKey = type.equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_UPLOAD : ApiFuncIdentificationConstant.UDF_UPLOAD;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, null, AuthorizationType.RESOURCE_FILE_ID, funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -355,7 +355,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
Result<Object> result = new Result<>();
|
|
|
String funcPermissionKey = type.equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_UPDATE : ApiFuncIdentificationConstant.UDF_UPDATE;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resourceId}, checkResourceType(type), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -364,14 +364,13 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
Resource resource = resourcesMapper.selectById(resourceId);
|
|
|
if (resource == null) {
|
|
|
putMsg(result, Status.RESOURCE_NOT_EXIST);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- if (!PropertyUtils.getResUploadStartupState()){
|
|
|
+ if (!PropertyUtils.getResUploadStartupState()) {
|
|
|
putMsg(result, Status.STORAGE_NOT_STARTUP);
|
|
|
return result;
|
|
|
}
|
|
@@ -744,7 +743,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
Result<Object> result = new Result<>();
|
|
|
|
|
|
Set<Integer> resourceIds = resourcePermissionCheckService.userOwnedResourceIdsAcquisition(checkResourceType(type), loginUser.getId(), logger);
|
|
|
- if (resourceIds.isEmpty()){
|
|
|
+ if (resourceIds.isEmpty()) {
|
|
|
result.setData(Collections.emptyList());
|
|
|
putMsg(result, Status.SUCCESS);
|
|
|
return result;
|
|
@@ -790,7 +789,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
}
|
|
|
String funcPermissionKey = resource.getType().equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_DELETE : ApiFuncIdentificationConstant.UDF_DELETE;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resourceId}, checkResourceType(resource.getType()), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(resultCheck, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return resultCheck;
|
|
|
}
|
|
@@ -873,7 +872,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
Result<Object> result = new Result<>();
|
|
|
String funcPermissionKey = type.equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_RENAME : ApiFuncIdentificationConstant.UDF_FILE_VIEW;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, null, AuthorizationType.RESOURCE_FILE_ID, funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -941,7 +940,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
}
|
|
|
String funcPermissionKey = type.equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_VIEW : ApiFuncIdentificationConstant.UDF_FILE_VIEW;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resource.getId()}, checkResourceType(type), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -965,7 +964,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
}
|
|
|
String funcPermissionKey = resource.getType().equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_VIEW : ApiFuncIdentificationConstant.UDF_FILE_VIEW;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{id}, checkResourceType(resource.getType()), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -996,7 +995,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
}
|
|
|
String funcPermissionKey = resource.getType().equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_VIEW : ApiFuncIdentificationConstant.UDF_FILE_VIEW;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resourceId}, checkResourceType(resource.getType()), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -1060,7 +1059,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
public Result<Object> onlineCreateResource(User loginUser, ResourceType type, String fileName, String fileSuffix, String desc, String content, int pid, String currentDir) {
|
|
|
Result<Object> result = new Result<>();
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, null, AuthorizationType.RESOURCE_FILE_ID, ApiFuncIdentificationConstant.FILE_ONLINE_CREATE);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -1274,7 +1273,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
}
|
|
|
String funcPermissionKey = resource.getType().equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_UPDATE : ApiFuncIdentificationConstant.UDF_UPDATE;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resourceId}, checkResourceType(resource.getType()), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
|
|
|
return result;
|
|
|
}
|
|
@@ -1333,7 +1332,6 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
String resourcePath = storageOperate.getResDir(tenantCode);
|
|
|
logger.info("resource path is {}, resource dir is {}", storageFileName, resourcePath);
|
|
|
|
|
|
-
|
|
|
if (!storageOperate.exists(tenantCode, resourcePath)) {
|
|
|
|
|
|
storageOperate.createTenantDirIfNotExists(tenantCode);
|
|
@@ -1376,7 +1374,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
|
|
|
String funcPermissionKey = resource.getType().equals(ResourceType.FILE) ? ApiFuncIdentificationConstant.FILE_DOWNLOAD : ApiFuncIdentificationConstant.UDF_DOWNLOAD;
|
|
|
boolean canOperatorPermissions = canOperatorPermissions(loginUser, new Object[]{resourceId}, checkResourceType(resource.getType()), funcPermissionKey);
|
|
|
- if (!canOperatorPermissions){
|
|
|
+ if (!canOperatorPermissions) {
|
|
|
logger.error("{}: {}", Status.NO_CURRENT_OPERATING_PERMISSION.getMsg(), PropertyUtils.getResUploadStartupState());
|
|
|
throw new ServiceException(Status.NO_CURRENT_OPERATING_PERMISSION.getMsg());
|
|
|
}
|
|
@@ -1424,7 +1422,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
@Override
|
|
|
public Map<String, Object> authorizeResourceTree(User loginUser, Integer userId) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- if (!resourcePermissionCheckService.functionDisabled()){
|
|
|
+ if (!resourcePermissionCheckService.functionDisabled()) {
|
|
|
putMsg(result, Status.FUNCTION_DISABLED);
|
|
|
return result;
|
|
|
}
|
|
@@ -1494,7 +1492,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
@Override
|
|
|
public Map<String, Object> unauthorizedUDFFunction(User loginUser, Integer userId) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- if (!resourcePermissionCheckService.functionDisabled()){
|
|
|
+ if (!resourcePermissionCheckService.functionDisabled()) {
|
|
|
putMsg(result, Status.FUNCTION_DISABLED);
|
|
|
return result;
|
|
|
}
|
|
@@ -1532,7 +1530,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
@Override
|
|
|
public Map<String, Object> authorizedUDFFunction(User loginUser, Integer userId) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- if (!resourcePermissionCheckService.functionDisabled()){
|
|
|
+ if (!resourcePermissionCheckService.functionDisabled()) {
|
|
|
putMsg(result, Status.FUNCTION_DISABLED);
|
|
|
return result;
|
|
|
}
|
|
@@ -1552,7 +1550,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
@Override
|
|
|
public Map<String, Object> authorizedFile(User loginUser, Integer userId) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- if (!resourcePermissionCheckService.functionDisabled()){
|
|
|
+ if (!resourcePermissionCheckService.functionDisabled()) {
|
|
|
putMsg(result, Status.FUNCTION_DISABLED);
|
|
|
return result;
|
|
|
}
|
|
@@ -1648,7 +1646,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|
|
*/
|
|
|
private List<Resource> queryAuthoredResourceList(User loginUser, ResourceType type) {
|
|
|
Set<Integer> resourceIds = resourcePermissionCheckService.userOwnedResourceIdsAcquisition(checkResourceType(type), loginUser.getId(), logger);
|
|
|
- if (resourceIds.isEmpty()){
|
|
|
+ if (resourceIds.isEmpty()) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
List<Resource> resources = resourcesMapper.selectBatchIds(resourceIds);
|