From 5ce31022958a74a09ae22fe7ec24ddb63bed592c Mon Sep 17 00:00:00 2001 From: datagear Date: Thu, 19 Aug 2021 23:03:20 +0800 Subject: [PATCH] =?UTF-8?q?service=E5=B1=82=E5=AE=9E=E7=8E=B0postProcessGe?= =?UTF-8?q?t=EF=BC=8C=E5=8A=A0=E8=BD=BD=E5=8F=AF=E8=83=BD=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E8=BF=87=E6=97=B6=E7=9A=84=E5=85=B1=E4=BA=AB=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/datagear/management/domain/User.java | 2 +- .../management/service/UserService.java | 8 ++ .../impl/AbstractMybatisEntityService.java | 60 ++++++++++++++ .../impl/AnalysisProjectServiceImpl.java | 16 +++- .../impl/DataSetEntityServiceImpl.java | 81 ++++++++++++++++++- .../impl/DataSetResDirectoryServiceImpl.java | 26 +++++- .../HtmlChartWidgetEntityServiceImpl.java | 47 ++++++++++- ...mlTplDashboardWidgetEntityServiceImpl.java | 47 ++++++++++- .../service/impl/SchemaServiceImpl.java | 31 +++++-- .../service/impl/UserServiceImpl.java | 9 +++ .../org/datagear/web/config/CoreConfig.java | 14 ++-- .../web/controller/ChartController.java | 2 +- .../web/controller/DataSetController.java | 14 ++-- .../web/controller/MainController.java | 2 +- .../web/controller/SchemaController.java | 2 +- .../web/controller/UserController.java | 4 +- 16 files changed, 329 insertions(+), 36 deletions(-) diff --git a/datagear-management/src/main/java/org/datagear/management/domain/User.java b/datagear-management/src/main/java/org/datagear/management/domain/User.java index d50e8799..d2c98a1c 100644 --- a/datagear-management/src/main/java/org/datagear/management/domain/User.java +++ b/datagear-management/src/main/java/org/datagear/management/domain/User.java @@ -192,7 +192,7 @@ public class User extends AbstractStringIdEntity implements CloneableEntity * * @return */ - public User cloneWithoutPassword() + public User cloneNoPassword() { User entity = clone(); entity.clearPassword(); diff --git a/datagear-management/src/main/java/org/datagear/management/service/UserService.java b/datagear-management/src/main/java/org/datagear/management/service/UserService.java index ca419a07..d8748d96 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/UserService.java +++ b/datagear-management/src/main/java/org/datagear/management/service/UserService.java @@ -25,6 +25,14 @@ public interface UserService extends EntityService */ User getByName(String name); + /** + * 根据ID获取用户,其密码已被清除。 + * + * @param id + * @return + */ + User getByIdNoPassword(String id); + /** * 更新用户密码。 * diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/AbstractMybatisEntityService.java b/datagear-management/src/main/java/org/datagear/management/service/impl/AbstractMybatisEntityService.java index abfb854c..21dc3e31 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/AbstractMybatisEntityService.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/AbstractMybatisEntityService.java @@ -13,14 +13,24 @@ import java.util.Map; import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.session.SqlSessionFactory; +import org.datagear.management.domain.AnalysisProject; +import org.datagear.management.domain.AnalysisProjectAwareEntity; import org.datagear.management.domain.CloneableEntity; +import org.datagear.management.domain.CreateUserEntity; +import org.datagear.management.domain.DataSetResDirectory; +import org.datagear.management.domain.DirectoryFileDataSetEntity; import org.datagear.management.domain.Entity; +import org.datagear.management.domain.User; +import org.datagear.management.service.AnalysisProjectService; import org.datagear.management.service.CreateUserEntityService; +import org.datagear.management.service.DataSetResDirectoryService; import org.datagear.management.service.EntityService; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.datagear.persistence.PagingData; import org.datagear.persistence.PagingQuery; import org.datagear.persistence.Query; +import org.datagear.util.StringUtil; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.cache.Cache.ValueWrapper; import org.springframework.cache.support.SimpleValueWrapper; @@ -276,6 +286,56 @@ public abstract class AbstractMybatisEntityService> ext return count; } + /** + * 如果{@linkplain CreateUserEntity#getCreateUser()}不为空, + * 则使用{@linkplain UserService#getByIdNoPassword(String)}对其进行更新。 + * + * @param entity 允许为{@code null} + * @param service + */ + protected void inflateCreateUserEntity(CreateUserEntity entity, UserService service) + { + User user = (entity == null ? null : entity.getCreateUser()); + String userId = (user == null ? null : user.getId()); + + if(!StringUtil.isEmpty(userId)) + entity.setCreateUser(service.getByIdNoPassword(userId)); + } + + /** + * 如果{@linkplain AnalysisProjectAwareEntity#getAnalysisProject()}不为空, + * 则使用{@linkplain AnalysisProjectService#getById(String)}对其进行更新。 + * + * @param entity 允许为{@code null} + * @param service + */ + protected void inflateAnalysisProjectAwareEntity(AnalysisProjectAwareEntity entity, + AnalysisProjectService service) + { + AnalysisProject ap = (entity == null ? null : entity.getAnalysisProject()); + String apId = (ap == null ? null : ap.getId()); + + if (!StringUtil.isEmpty(ap)) + entity.setAnalysisProject(service.getById(apId)); + } + + /** + * 如果{@linkplain DirectoryFileDataSetEntity#getDataSetResDirectory()}不为空, + * 则使用{@linkplain DataSetResDirectoryService#getById(String)}对其进行更新。 + * + * @param entity 允许为{@code null} + * @param service + */ + protected void inflateDirectoryFileDataSetEntity(DirectoryFileDataSetEntity entity, + DataSetResDirectoryService service) + { + DataSetResDirectory dsd = (entity == null ? null : entity.getDataSetResDirectory()); + String dsdId = (dsd == null ? null : dsd.getId()); + + if (!StringUtil.isEmpty(dsdId)) + entity.setDataSetResDirectory(service.getById(dsdId)); + } + /** * 从缓存中读取实体。 *

diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/AnalysisProjectServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/AnalysisProjectServiceImpl.java index b2f7067e..19b3e475 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/AnalysisProjectServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/AnalysisProjectServiceImpl.java @@ -13,6 +13,7 @@ import org.datagear.management.domain.User; import org.datagear.management.service.AnalysisProjectService; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.PermissionDeniedException; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.mybatis.spring.SqlSessionTemplate; @@ -27,21 +28,25 @@ public class AnalysisProjectServiceImpl extends AbstractMybatisDataPermissionEnt { protected static final String SQL_NAMESPACE = AnalysisProject.class.getName(); + private UserService userService; + public AnalysisProjectServiceImpl() { super(); } public AnalysisProjectServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, - AuthorizationService authorizationService) + AuthorizationService authorizationService, UserService userService) { super(sqlSessionFactory, dialect, authorizationService); + this.userService = userService; } public AnalysisProjectServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, - AuthorizationService authorizationService) + AuthorizationService authorizationService, UserService userService) { super(sqlSessionTemplate, dialect, authorizationService); + this.userService = userService; } @Override @@ -62,6 +67,13 @@ public class AnalysisProjectServiceImpl extends AbstractMybatisDataPermissionEnt return super.updateCreateUserId(oldUserId, newUserId); } + @Override + protected AnalysisProject postProcessGet(AnalysisProject obj) + { + inflateCreateUserEntity(obj, this.userService); + return super.postProcessGet(obj); + } + @Override protected void checkAddInput(AnalysisProject entity) { diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetEntityServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetEntityServiceImpl.java index 773a3141..d09fb6d6 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetEntityServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetEntityServiceImpl.java @@ -24,22 +24,28 @@ import org.datagear.management.domain.AnalysisProjectAwareEntity; import org.datagear.management.domain.CsvFileDataSetEntity; import org.datagear.management.domain.CsvValueDataSetEntity; import org.datagear.management.domain.DataSetEntity; +import org.datagear.management.domain.DirectoryFileDataSetEntity; import org.datagear.management.domain.ExcelDataSetEntity; import org.datagear.management.domain.HttpDataSetEntity; import org.datagear.management.domain.JsonFileDataSetEntity; import org.datagear.management.domain.JsonValueDataSetEntity; +import org.datagear.management.domain.Schema; import org.datagear.management.domain.SchemaConnectionFactory; import org.datagear.management.domain.SqlDataSetEntity; import org.datagear.management.domain.SummaryDataSetEntity; import org.datagear.management.domain.User; +import org.datagear.management.service.AnalysisProjectService; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.DataSetEntityService; +import org.datagear.management.service.DataSetResDirectoryService; import org.datagear.management.service.PermissionDeniedException; import org.datagear.management.service.SchemaService; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.datagear.persistence.PagingData; import org.datagear.persistence.PagingQuery; import org.datagear.util.FileUtil; +import org.datagear.util.StringUtil; import org.mybatis.spring.SqlSessionTemplate; /** @@ -57,6 +63,12 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit private SchemaService schemaService; + private AnalysisProjectService analysisProjectService; + + private UserService userService; + + private DataSetResDirectoryService dataSetResDirectoryService; + /** 数据集文件存储根目录 */ private File dataSetRootDirectory; @@ -70,11 +82,16 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit public DataSetEntityServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, AuthorizationService authorizationService, ConnectionSource connectionSource, SchemaService schemaService, + AnalysisProjectService analysisProjectService, + UserService userService, DataSetResDirectoryService dataSetResDirectoryService, File dataSetRootDirectory, HttpClient httpClient) { super(sqlSessionFactory, dialect, authorizationService); this.connectionSource = connectionSource; this.schemaService = schemaService; + this.analysisProjectService = analysisProjectService; + this.userService = userService; + this.dataSetResDirectoryService = dataSetResDirectoryService; setDataSetRootDirectory(dataSetRootDirectory); this.httpClient = httpClient; } @@ -82,11 +99,16 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit public DataSetEntityServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, AuthorizationService authorizationService, ConnectionSource connectionSource, SchemaService schemaService, + AnalysisProjectService analysisProjectService, + UserService userService, DataSetResDirectoryService dataSetResDirectoryService, File dataSetRootDirectory, HttpClient httpClient) { super(sqlSessionTemplate, dialect, authorizationService); this.connectionSource = connectionSource; this.schemaService = schemaService; + this.analysisProjectService = analysisProjectService; + this.userService = userService; + this.dataSetResDirectoryService = dataSetResDirectoryService; setDataSetRootDirectory(dataSetRootDirectory); this.httpClient = httpClient; } @@ -111,6 +133,36 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit this.schemaService = schemaService; } + public AnalysisProjectService getAnalysisProjectService() + { + return analysisProjectService; + } + + public void setAnalysisProjectService(AnalysisProjectService analysisProjectService) + { + this.analysisProjectService = analysisProjectService; + } + + public UserService getUserService() + { + return userService; + } + + public void setUserService(UserService userService) + { + this.userService = userService; + } + + public DataSetResDirectoryService getDataSetResDirectoryService() + { + return dataSetResDirectoryService; + } + + public void setDataSetResDirectoryService(DataSetResDirectoryService dataSetResDirectoryService) + { + this.dataSetResDirectoryService = dataSetResDirectoryService; + } + public File getDataSetRootDirectory() { return dataSetRootDirectory; @@ -146,11 +198,10 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit if (entity instanceof SqlDataSetEntity) { SqlDataSetEntity sqlDataSetEntity = (SqlDataSetEntity) entity; - SchemaConnectionFactory connectionFactory = sqlDataSetEntity.getConnectionFactory(); - connectionFactory.setSchema(this.schemaService.getById(connectionFactory.getSchema().getId())); - connectionFactory.setConnectionSource(this.connectionSource); + if (connectionFactory != null) + connectionFactory.setConnectionSource(this.connectionSource); } return entity; @@ -490,6 +541,30 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit return entity; } + @Override + protected DataSetEntity postProcessGet(DataSetEntity obj) + { + inflateAnalysisProjectAwareEntity(obj, this.analysisProjectService); + inflateCreateUserEntity(obj, this.userService); + + if (obj instanceof DirectoryFileDataSetEntity) + inflateDirectoryFileDataSetEntity((DirectoryFileDataSetEntity) obj, this.dataSetResDirectoryService); + + if (obj instanceof SqlDataSetEntity) + { + SqlDataSetEntity entity = (SqlDataSetEntity) obj; + + SchemaConnectionFactory connectionFactory = entity.getConnectionFactory(); + Schema schema = (connectionFactory == null ? null : connectionFactory.getSchema()); + String schemaId = (schema == null ? null : schema.getId()); + + if (!StringUtil.isEmpty(schemaId)) + connectionFactory.setSchema(this.schemaService.getById(schemaId)); + } + + return super.postProcessGet(obj); + } + @Override protected void addDataPermissionParameters(Map params, User user) { diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetResDirectoryServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetResDirectoryServiceImpl.java index ee42013a..80adfb9d 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetResDirectoryServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/DataSetResDirectoryServiceImpl.java @@ -13,6 +13,7 @@ import org.datagear.management.domain.User; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.DataSetResDirectoryService; import org.datagear.management.service.PermissionDeniedException; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.mybatis.spring.SqlSessionTemplate; @@ -27,21 +28,35 @@ public class DataSetResDirectoryServiceImpl extends { protected static final String SQL_NAMESPACE = DataSetResDirectory.class.getName(); + private UserService userService; + public DataSetResDirectoryServiceImpl() { super(); } public DataSetResDirectoryServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, - AuthorizationService authorizationService) + AuthorizationService authorizationService, UserService userService) { super(sqlSessionFactory, dialect, authorizationService); + this.userService = userService; } public DataSetResDirectoryServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, - AuthorizationService authorizationService) + AuthorizationService authorizationService, UserService userService) { super(sqlSessionTemplate, dialect, authorizationService); + this.userService = userService; + } + + public UserService getUserService() + { + return userService; + } + + public void setUserService(UserService userService) + { + this.userService = userService; } @Override @@ -62,6 +77,13 @@ public class DataSetResDirectoryServiceImpl extends return super.updateCreateUserId(oldUserId, newUserId); } + @Override + protected DataSetResDirectory postProcessGet(DataSetResDirectory obj) + { + inflateCreateUserEntity(obj, this.userService); + return super.postProcessGet(obj); + } + @Override protected void checkAddInput(DataSetResDirectory entity) { diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlChartWidgetEntityServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlChartWidgetEntityServiceImpl.java index 28b9a678..59171901 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlChartWidgetEntityServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlChartWidgetEntityServiceImpl.java @@ -34,10 +34,12 @@ import org.datagear.management.domain.AnalysisProjectAwareEntity; import org.datagear.management.domain.ChartDataSetVO; import org.datagear.management.domain.HtmlChartWidgetEntity; import org.datagear.management.domain.User; +import org.datagear.management.service.AnalysisProjectService; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.DataSetEntityService; import org.datagear.management.service.HtmlChartWidgetEntityService; import org.datagear.management.service.PermissionDeniedException; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.datagear.persistence.PagingData; import org.datagear.persistence.PagingQuery; @@ -60,6 +62,10 @@ public class HtmlChartWidgetEntityServiceImpl private DataSetEntityService dataSetEntityService; + private AnalysisProjectService analysisProjectService; + + private UserService userService; + public HtmlChartWidgetEntityServiceImpl() { super(); @@ -67,20 +73,28 @@ public class HtmlChartWidgetEntityServiceImpl public HtmlChartWidgetEntityServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, AuthorizationService authorizationService, - ChartPluginManager chartPluginManager, DataSetEntityService dataSetEntityService) + ChartPluginManager chartPluginManager, DataSetEntityService dataSetEntityService, + AnalysisProjectService analysisProjectService, + UserService userService) { super(sqlSessionFactory, dialect, authorizationService); this.chartPluginManager = chartPluginManager; this.dataSetEntityService = dataSetEntityService; + this.analysisProjectService = analysisProjectService; + this.userService = userService; } public HtmlChartWidgetEntityServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, AuthorizationService authorizationService, - ChartPluginManager chartPluginManager, DataSetEntityService dataSetEntityService) + ChartPluginManager chartPluginManager, DataSetEntityService dataSetEntityService, + AnalysisProjectService analysisProjectService, + UserService userService) { super(sqlSessionTemplate, dialect, authorizationService); this.chartPluginManager = chartPluginManager; this.dataSetEntityService = dataSetEntityService; + this.analysisProjectService = analysisProjectService; + this.userService = userService; } public ChartPluginManager getChartPluginManager() @@ -103,6 +117,26 @@ public class HtmlChartWidgetEntityServiceImpl this.dataSetEntityService = dataSetEntityService; } + public AnalysisProjectService getAnalysisProjectService() + { + return analysisProjectService; + } + + public void setAnalysisProjectService(AnalysisProjectService analysisProjectService) + { + this.analysisProjectService = analysisProjectService; + } + + public UserService getUserService() + { + return userService; + } + + public void setUserService(UserService userService) + { + this.userService = userService; + } + @Override public ChartWidget getChartWidget(String id) throws Throwable { @@ -199,6 +233,15 @@ public class HtmlChartWidgetEntityServiceImpl return entity; } + @Override + protected HtmlChartWidgetEntity postProcessGet(HtmlChartWidgetEntity obj) + { + inflateAnalysisProjectAwareEntity(obj, this.analysisProjectService); + inflateCreateUserEntity(obj, this.userService); + + return super.postProcessGet(obj); + } + protected void saveWidgetDataSetRelations(HtmlChartWidgetEntity entity) { Map delParams = buildParamMap(); diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlTplDashboardWidgetEntityServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlTplDashboardWidgetEntityServiceImpl.java index fea91fc1..858d1815 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlTplDashboardWidgetEntityServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/HtmlTplDashboardWidgetEntityServiceImpl.java @@ -15,9 +15,11 @@ import org.datagear.management.domain.AnalysisProject; import org.datagear.management.domain.AnalysisProjectAwareEntity; import org.datagear.management.domain.HtmlTplDashboardWidgetEntity; import org.datagear.management.domain.User; +import org.datagear.management.service.AnalysisProjectService; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.HtmlTplDashboardWidgetEntityService; import org.datagear.management.service.PermissionDeniedException; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; import org.datagear.persistence.PagingData; import org.datagear.persistence.PagingQuery; @@ -37,6 +39,10 @@ public class HtmlTplDashboardWidgetEntityServiceImpl private HtmlTplDashboardWidgetRenderer htmlTplDashboardWidgetRenderer; + private AnalysisProjectService analysisProjectService; + + private UserService userService; + public HtmlTplDashboardWidgetEntityServiceImpl() { super(); @@ -44,18 +50,26 @@ public class HtmlTplDashboardWidgetEntityServiceImpl public HtmlTplDashboardWidgetEntityServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, AuthorizationService authorizationService, - HtmlTplDashboardWidgetRenderer htmlTplDashboardWidgetRenderer) + HtmlTplDashboardWidgetRenderer htmlTplDashboardWidgetRenderer, + AnalysisProjectService analysisProjectService, + UserService userService) { super(sqlSessionFactory, dialect, authorizationService); this.htmlTplDashboardWidgetRenderer = htmlTplDashboardWidgetRenderer; + this.analysisProjectService = analysisProjectService; + this.userService = userService; } public HtmlTplDashboardWidgetEntityServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, AuthorizationService authorizationService, - HtmlTplDashboardWidgetRenderer htmlTplDashboardWidgetRenderer) + HtmlTplDashboardWidgetRenderer htmlTplDashboardWidgetRenderer, + AnalysisProjectService analysisProjectService, + UserService userService) { super(sqlSessionTemplate, dialect, authorizationService); this.htmlTplDashboardWidgetRenderer = htmlTplDashboardWidgetRenderer; + this.analysisProjectService = analysisProjectService; + this.userService = userService; } @Override @@ -69,6 +83,26 @@ public class HtmlTplDashboardWidgetEntityServiceImpl this.htmlTplDashboardWidgetRenderer = htmlTplDashboardWidgetRenderer; } + public AnalysisProjectService getAnalysisProjectService() + { + return analysisProjectService; + } + + public void setAnalysisProjectService(AnalysisProjectService analysisProjectService) + { + this.analysisProjectService = analysisProjectService; + } + + public UserService getUserService() + { + return userService; + } + + public void setUserService(UserService userService) + { + this.userService = userService; + } + @Override public HtmlTplDashboardWidgetEntity getHtmlTplDashboardWidget(User user, String id) { @@ -105,6 +139,15 @@ public class HtmlTplDashboardWidgetEntityServiceImpl return pagingQueryForAnalysisProjectId(user, pagingQuery, dataFilter, analysisProjectId, true); } + @Override + protected HtmlTplDashboardWidgetEntity postProcessGet(HtmlTplDashboardWidgetEntity obj) + { + inflateAnalysisProjectAwareEntity(obj, this.analysisProjectService); + inflateCreateUserEntity(obj, this.userService); + + return super.postProcessGet(obj); + } + @Override protected boolean deleteById(String id, Map params) { diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/SchemaServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/SchemaServiceImpl.java index 3c278040..4b004176 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/SchemaServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/SchemaServiceImpl.java @@ -10,14 +10,15 @@ package org.datagear.management.service.impl; import java.util.Map; import org.apache.ibatis.session.SqlSessionFactory; -import org.datagear.connection.DriverEntity; import org.datagear.connection.DriverEntityManager; import org.datagear.management.domain.Schema; import org.datagear.management.domain.User; import org.datagear.management.service.AuthorizationService; import org.datagear.management.service.PermissionDeniedException; import org.datagear.management.service.SchemaService; +import org.datagear.management.service.UserService; import org.datagear.management.util.dialect.MbSqlDialect; +import org.datagear.util.StringUtil; import org.mybatis.spring.SqlSessionTemplate; /** @@ -33,6 +34,8 @@ public class SchemaServiceImpl extends AbstractMybatisDataPermissionEntityServic private DriverEntityManager driverEntityManager; + private UserService userService; + public SchemaServiceImpl() { super(); @@ -40,18 +43,20 @@ public class SchemaServiceImpl extends AbstractMybatisDataPermissionEntityServic public SchemaServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, AuthorizationService authorizationService, - DriverEntityManager driverEntityManager) + DriverEntityManager driverEntityManager, UserService userService) { super(sqlSessionFactory, dialect, authorizationService); this.driverEntityManager = driverEntityManager; + this.userService = userService; } public SchemaServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, AuthorizationService authorizationService, - DriverEntityManager driverEntityManager) + DriverEntityManager driverEntityManager, UserService userService) { super(sqlSessionTemplate, dialect, authorizationService); this.driverEntityManager = driverEntityManager; + this.userService = userService; } public DriverEntityManager getDriverEntityManager() @@ -64,6 +69,16 @@ public class SchemaServiceImpl extends AbstractMybatisDataPermissionEntityServic this.driverEntityManager = driverEntityManager; } + public UserService getUserService() + { + return userService; + } + + public void setUserService(UserService userService) + { + this.userService = userService; + } + @Override public String getResourceType() { @@ -114,13 +129,17 @@ public class SchemaServiceImpl extends AbstractMybatisDataPermissionEntityServic @Override protected Schema postProcessGet(Schema schema) { + inflateCreateUserEntity(schema, this.userService); + if (schema.hasDriverEntity()) { - DriverEntity driverEntity = this.driverEntityManager.get(schema.getDriverEntity().getId()); - schema.setDriverEntity(driverEntity); + String did = schema.getDriverEntity().getId(); + + if (!StringUtil.isEmpty(did)) + schema.setDriverEntity(this.driverEntityManager.get(did)); } - return schema; + return super.postProcessGet(schema); } @Override diff --git a/datagear-management/src/main/java/org/datagear/management/service/impl/UserServiceImpl.java b/datagear-management/src/main/java/org/datagear/management/service/impl/UserServiceImpl.java index 959ce32d..4661f7c6 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/impl/UserServiceImpl.java +++ b/datagear-management/src/main/java/org/datagear/management/service/impl/UserServiceImpl.java @@ -145,6 +145,15 @@ public class UserServiceImpl extends AbstractMybatisEntityService return user; } + @Override + public User getByIdNoPassword(String id) + { + User user = super.getById(id); + user.clearPassword(); + + return user; + } + @Override public boolean updatePasswordById(String id, String newPassword, boolean encrypt) { diff --git a/datagear-web/src/main/java/org/datagear/web/config/CoreConfig.java b/datagear-web/src/main/java/org/datagear/web/config/CoreConfig.java index 37b8c2fd..3a0ba1ab 100644 --- a/datagear-web/src/main/java/org/datagear/web/config/CoreConfig.java +++ b/datagear-web/src/main/java/org/datagear/web/config/CoreConfig.java @@ -480,7 +480,7 @@ public class CoreConfig implements ApplicationListener public SchemaService schemaService() { SchemaServiceImpl bean = new SchemaServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(), - this.authorizationService(), this.driverEntityManager()); + this.authorizationService(), this.driverEntityManager(), this.userService()); return bean; } @@ -513,7 +513,9 @@ public class CoreConfig implements ApplicationListener public DataSetEntityService dataSetEntityService() { DataSetEntityServiceImpl bean = new DataSetEntityServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(), - this.authorizationService(), this.connectionSource(), this.schemaService(), this.dataSetRootDirectory(), + this.authorizationService(), this.connectionSource(), this.schemaService(), + this.analysisProjectService(), this.userService(), this.dataSetResDirectoryService(), + this.dataSetRootDirectory(), this.httpClient()); return bean; @@ -555,7 +557,7 @@ public class CoreConfig implements ApplicationListener { HtmlChartWidgetEntityServiceImpl bean = new HtmlChartWidgetEntityServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(), this.authorizationService(), this.directoryHtmlChartPluginManager(), - this.dataSetEntityService()); + this.dataSetEntityService(), this.analysisProjectService(), this.userService()); return bean; } @@ -663,7 +665,7 @@ public class CoreConfig implements ApplicationListener { HtmlTplDashboardWidgetEntityServiceImpl bean = new HtmlTplDashboardWidgetEntityServiceImpl( this.sqlSessionFactory(), this.mbSqlDialect(), this.authorizationService(), - this.htmlTplDashboardWidgetRenderer()); + this.htmlTplDashboardWidgetRenderer(), this.analysisProjectService(), this.userService()); return bean; } @@ -672,7 +674,7 @@ public class CoreConfig implements ApplicationListener public AnalysisProjectService analysisProjectService() { AnalysisProjectService bean = new AnalysisProjectServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(), - this.authorizationService()); + this.authorizationService(), this.userService()); return bean; } @@ -680,7 +682,7 @@ public class CoreConfig implements ApplicationListener public DataSetResDirectoryService dataSetResDirectoryService() { DataSetResDirectoryService bean = new DataSetResDirectoryServiceImpl(this.sqlSessionFactory(), - this.mbSqlDialect(), this.authorizationService()); + this.mbSqlDialect(), this.authorizationService(), this.userService()); return bean; } diff --git a/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java b/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java index 2ab31f3a..5b424c66 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/ChartController.java @@ -275,7 +275,7 @@ public class ChartController extends AbstractChartPluginAwareController implemen if (isEmpty(entity.getId())) { entity.setId(IDUtil.randomIdOnTime20()); - entity.setCreateUser(user.cloneWithoutPassword()); + entity.setCreateUser(user.cloneNoPassword()); inflateHtmlChartWidgetEntity(entity, request); checkSaveEntity(entity); diff --git a/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java b/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java index 9c9a0f1c..cdedd58b 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java @@ -178,7 +178,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveSqlDataSetEntity(request, dataSet); @@ -214,7 +214,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveJsonValueDataSetEntity(request, dataSet); @@ -251,7 +251,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveJsonFileDataSetEntity(request, dataSet); @@ -290,7 +290,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveExcelDataSetEntity(request, dataSet); @@ -329,7 +329,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveCsvValueDataSetEntity(request, dataSet); @@ -367,7 +367,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveCsvFileDataSetEntity(request, dataSet); @@ -406,7 +406,7 @@ public class DataSetController extends AbstractSchemaConnController User user = WebUtils.getUser(request, response); dataSet.setId(IDUtil.randomIdOnTime20()); - dataSet.setCreateUser(user.cloneWithoutPassword()); + dataSet.setCreateUser(user.cloneNoPassword()); ResponseEntity responseEntity = checkSaveHttpDataSetEntity(request, dataSet); diff --git a/datagear-web/src/main/java/org/datagear/web/controller/MainController.java b/datagear-web/src/main/java/org/datagear/web/controller/MainController.java index d87e3df3..b84d8a43 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/MainController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/MainController.java @@ -96,7 +96,7 @@ public class MainController extends AbstractController public String main(HttpServletRequest request, HttpServletResponse response, Model model) { request.setAttribute("disableRegister", this.disableRegister); - request.setAttribute("currentUser", WebUtils.getUser(request, response).cloneWithoutPassword()); + request.setAttribute("currentUser", WebUtils.getUser(request, response).cloneNoPassword()); request.setAttribute("currentVersion", Global.VERSION); resolveDetectNewVersionScript(request, response); diff --git a/datagear-web/src/main/java/org/datagear/web/controller/SchemaController.java b/datagear-web/src/main/java/org/datagear/web/controller/SchemaController.java index 73c2348c..c388788b 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/SchemaController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/SchemaController.java @@ -110,7 +110,7 @@ public class SchemaController extends AbstractSchemaConnTableController schema.setId(IDUtil.randomIdOnTime20()); schema.setCreateTime(new Date()); - schema.setCreateUser(user.cloneWithoutPassword()); + schema.setCreateUser(user.cloneNoPassword()); getSchemaService().add(user, schema); diff --git a/datagear-web/src/main/java/org/datagear/web/controller/UserController.java b/datagear-web/src/main/java/org/datagear/web/controller/UserController.java index 73ea1765..479eff40 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/UserController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/UserController.java @@ -119,7 +119,7 @@ public class UserController extends AbstractController this.userService.add(user); - return buildOperationMessageSaveSuccessResponseEntity(request, user.cloneWithoutPassword()); + return buildOperationMessageSaveSuccessResponseEntity(request, user.cloneNoPassword()); } @RequestMapping("/edit") @@ -157,7 +157,7 @@ public class UserController extends AbstractController this.userService.update(user); - return buildOperationMessageSaveSuccessResponseEntity(request, user.cloneWithoutPassword()); + return buildOperationMessageSaveSuccessResponseEntity(request, user.cloneNoPassword()); } @RequestMapping("/view")