@ -17,11 +17,8 @@
package org.apache.dolphinscheduler.api.service.impl ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import org.apache.commons.collections.CollectionUtils ;
import org.apache.commons.lang3.StringUtils ;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.USER_MANAGER ;
import org.apache.dolphinscheduler.api.dto.resources.ResourceComponent ;
import org.apache.dolphinscheduler.api.enums.Status ;
import org.apache.dolphinscheduler.api.exceptions.ServiceException ;
@ -59,28 +56,34 @@ import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.UDFUserMapper ;
import org.apache.dolphinscheduler.dao.mapper.UserMapper ;
import org.apache.dolphinscheduler.dao.utils.ResourceProcessDefinitionUtils ;
import org.apache.dolphinscheduler.api.permission.ResourcePermissionCheckService ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
import org.apache.commons.collections.CollectionUtils ;
import org.apache.commons.lang3.StringUtils ;
import java.io.IOException ;
import java.text.MessageFormat ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Date ;
import java.util.HashMap ;
import java.util.HashSet ;
import java.util.List ;
import java.util.Map ;
import java.util.Objects ;
import java.util.Set ;
import java.util.TimeZone ;
import java.util.Arrays ;
import java.util.Objects ;
import java.util.stream.Collectors ;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.USER_MANAGER ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
/ * *
* users service impl
@ -129,8 +132,6 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Autowired
private K8sNamespaceUserMapper k8sNamespaceUserMapper ;
@Autowired
private ResourcePermissionCheckService resourcePermissionCheckService ;
/ * *
* create user , only system admin have permission
@ -159,7 +160,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
//check all user params
String msg = this . checkUserParams ( userName , userPassword , email , phone ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED , msg ) ;
return result ;
}
@ -185,7 +186,6 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
// resource upload startup
if ( PropertyUtils . getResUploadStartupState ( ) ) {
storageOperate . createTenantDirIfNotExists ( tenant . getTenantCode ( ) ) ;
//
}
result . put ( Constants . DATA_LIST , user ) ;
@ -337,7 +337,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Override
public Result < Object > queryUserList ( User loginUser , String searchVal , Integer pageNo , Integer pageSize ) {
Result < Object > result = new Result < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -387,7 +387,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -453,62 +453,6 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
user . setState ( state ) ;
Date now = new Date ( ) ;
user . setUpdateTime ( now ) ;
//if user switches the tenant, the user's resources need to be copied to the new tenant
// if (user.getTenantId() != tenantId) {
// Tenant oldTenant = tenantMapper.queryById(user.getTenantId());
// //query tenant
// Tenant newTenant = tenantMapper.queryById(tenantId);
// // if hdfs startup
// if (null != newTenant && PropertyUtils.getResUploadStartupState() && oldTenant != null) {
// String newTenantCode = newTenant.getTenantCode();
// String oldResourcePath = storageOperate.getResDir(oldTenant.getTenantCode());
// String oldUdfsPath = storageOperate.getUdfDir(oldTenant.getTenantCode());
//
// try {// if old tenant dir exists
// if (storageOperate.exists(oldTenant.getTenantCode(), oldResourcePath)) {
// String newResourcePath = storageOperate.getResDir(newTenantCode);
// String newUdfsPath = storageOperate.getUdfDir(newTenantCode);
//
// //file resources list
// List<Resource> fileResourcesList = resourceMapper.queryResourceList(
// null, userId, ResourceType.FILE.ordinal());
// if (CollectionUtils.isNotEmpty(fileResourcesList)) {
// ResourceTreeVisitor resourceTreeVisitor = new ResourceTreeVisitor(fileResourcesList);
// ResourceComponent resourceComponent = resourceTreeVisitor.visit();
// copyResourceFiles(oldTenant.getTenantCode(), newTenantCode, resourceComponent, oldResourcePath, newResourcePath);
// }
//
// //udf resources
// List<Resource> udfResourceList = resourceMapper.queryResourceList(
// null, userId, ResourceType.UDF.ordinal());
// if (CollectionUtils.isNotEmpty(udfResourceList)) {
// ResourceTreeVisitor resourceTreeVisitor = new ResourceTreeVisitor(udfResourceList);
// ResourceComponent resourceComponent = resourceTreeVisitor.visit();
// copyResourceFiles(oldTenant.getTenantCode(), newTenantCode, resourceComponent, oldUdfsPath, newUdfsPath);
// }
//
// } else {
// // if old tenant dir not exists , create
// storageOperate.createTenantDirIfNotExists(oldTenant.getTenantCode());
//
// if (!storageOperate.exists(newTenant.getTenantCode(), storageOperate.getDir(null,newTenant.getTenantCode()))) {
// storageOperate.createTenantDirIfNotExists(newTenant.getTenantCode());
// }
// }
// } catch (Exception e) {
// logger.error("create tenant {} failed ,the reason is {}", oldTenant, e.getMessage());
// }
//
//
// try {
// storageOperate.createTenantDirIfNotExists(newTenant.getTenantCode());
// } catch (Exception e) {
// logger.error("create tenant {} failed ,the reason is {}", newTenant, e.getMessage());
// }
// }
// user.setTenantId(tenantId);
// }
user . setTenantId ( tenantId ) ;
// updateProcessInstance user
userMapper . updateById ( user ) ;
@ -528,7 +472,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Transactional
public Map < String , Object > deleteUserById ( User loginUser , int id ) throws IOException {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -552,8 +496,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
}
// delete user
userMapper . queryTenantCodeByUserId ( id ) ;
accessTokenMapper . deleteAccessTokenByUserId ( id ) ;
userMapper . deleteById ( id ) ;
@ -577,7 +520,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -621,7 +564,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -676,7 +619,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -718,7 +661,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > grantResources ( User loginUser , int userId , String resourceIds ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -816,7 +759,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > grantUDFFunction ( User loginUser , int userId , String udfIds ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -864,7 +807,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > grantNamespaces ( User loginUser , int userId , String namespaceIds ) {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -915,7 +858,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -961,7 +904,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1004,7 +947,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Override
public Map < String , Object > queryAllGeneralUsers ( User loginUser ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1078,7 +1021,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > unauthorizedUser ( User loginUser , Integer alertgroupId ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1118,7 +1061,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Override
public Map < String , Object > authorizedUser ( User loginUser , Integer alertGroupId ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1140,8 +1083,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
private boolean checkTenantExists ( int tenantId ) {
return tenantMapper . queryById ( tenantId ) ! = null ;
}
/ * *
* @return if check failed return the field , otherwise return null
* /
@ -1225,7 +1167,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
//check user params
String msg = this . checkUserParams ( userName , userPassword , email , "" ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1255,7 +1197,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > activateUser ( User loginUser , String userName ) {
Map < String , Object > result = new HashMap < > ( ) ;
result . put ( Constants . STATUS , false ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}
@ -1303,7 +1245,7 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
public Map < String , Object > batchActivateUser ( User loginUser , List < String > userNames ) {
Map < String , Object > result = new HashMap < > ( ) ;
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
if ( resourcePermissionCheckService . functionDisabled ( ) ) {
putMsg ( result , Status . FUNCTION_DISABLED ) ;
return result ;
}