From d3952387c15bf4d6e43b710ac70404bb98d3f517 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 21 Oct 2021 13:49:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/pom.xml | 4 +- .../java/io/dataease/auth/api/AuthApi.java | 6 + .../io/dataease/auth/server/AuthServer.java | 9 + .../auth/service/AuthUserService.java | 2 + .../service/impl/AuthUserServiceImpl.java | 12 + .../sys/SystemParameterController.java | 7 + .../controller/sys/response/MailInfo.java | 18 + .../system/SystemParameterService.java | 32 +- .../resources/db/migration/V27__de1.4.sql | 4 + frontend/src/api/system/email.js | 30 ++ frontend/src/api/user.js | 7 + .../EmailSetting.vue | 14 +- frontend/src/views/system/SysParam/index.vue | 50 +++ frontend/src/views/system/settings/index.vue | 21 -- .../src/views/system/settings/sso/index.vue | 21 -- .../views/system/settings/sso/ldap/index.vue | 0 .../views/system/settings/sso/oidc/index.vue | 0 .../src/views/system/settings/theme/index.vue | 10 - .../system/systemParamSettings/UiSetting.vue | 322 ------------------ .../system/systemParamSettings/index.vue | 45 --- pom.xml | 2 +- 21 files changed, 184 insertions(+), 432 deletions(-) create mode 100644 backend/src/main/java/io/dataease/controller/sys/response/MailInfo.java create mode 100644 frontend/src/api/system/email.js rename frontend/src/views/system/{systemParamSettings => SysParam}/EmailSetting.vue (95%) create mode 100644 frontend/src/views/system/SysParam/index.vue delete mode 100644 frontend/src/views/system/settings/index.vue delete mode 100644 frontend/src/views/system/settings/sso/index.vue delete mode 100644 frontend/src/views/system/settings/sso/ldap/index.vue delete mode 100644 frontend/src/views/system/settings/sso/oidc/index.vue delete mode 100644 frontend/src/views/system/settings/theme/index.vue delete mode 100644 frontend/src/views/system/systemParamSettings/UiSetting.vue delete mode 100644 frontend/src/views/system/systemParamSettings/index.vue diff --git a/backend/pom.xml b/backend/pom.xml index 68fb99604a..8316c908e9 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -5,7 +5,7 @@ dataease-server io.dataease - 1.3.0 + 1.4.0 4.0.0 @@ -201,7 +201,7 @@ io.dataease dataease-plugin-interface - 1.3 + 1.4 cn.hutool diff --git a/backend/src/main/java/io/dataease/auth/api/AuthApi.java b/backend/src/main/java/io/dataease/auth/api/AuthApi.java index f5e72afbb0..db8cf15460 100644 --- a/backend/src/main/java/io/dataease/auth/api/AuthApi.java +++ b/backend/src/main/java/io/dataease/auth/api/AuthApi.java @@ -5,6 +5,8 @@ import io.dataease.auth.api.dto.CurrentUserDto; import io.dataease.auth.api.dto.LoginDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import springfox.documentation.annotations.ApiIgnore; + import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -49,4 +51,8 @@ public interface AuthApi { @PostMapping("/isOpenOidc") boolean isOpenOidc(); + @ApiIgnore + @PostMapping("/isPluginLoaded") + boolean isPluginLoaded(); + } diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index 96979bfda7..7efab38dd6 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -184,6 +184,15 @@ public class AuthServer implements AuthApi { return authUserService.supportOidc(); } + @Override + public boolean isPluginLoaded() { + Boolean licValid = PluginUtils.licValid(); + if(!licValid) return false; + return authUserService.pluginLoaded(); + } + + + /*@Override diff --git a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java index a01fe2a3cc..13eee76696 100644 --- a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java +++ b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java @@ -29,6 +29,8 @@ public interface AuthUserService { Boolean supportOidc(); + Boolean pluginLoaded(); + } diff --git a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java index ebd6febcec..9c65616c9a 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java @@ -8,6 +8,7 @@ import io.dataease.base.mapper.ext.AuthMapper; import io.dataease.auth.service.AuthUserService; import io.dataease.commons.constants.AuthConstants; import io.dataease.commons.utils.LogUtil; +import io.dataease.plugins.common.service.PluginCommonService; import io.dataease.plugins.config.SpringContextUtil; import io.dataease.plugins.xpack.ldap.service.LdapXpackService; import io.dataease.plugins.xpack.oidc.service.OidcXpackService; @@ -137,5 +138,16 @@ public class AuthUserServiceImpl implements AuthUserService { return oidcXpackService.isSuuportOIDC(); } + @Override + public Boolean pluginLoaded() { + Map beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((PluginCommonService.class)); + if(beansOfType.keySet().size() == 0) return false; + PluginCommonService pluginCommonService = SpringContextUtil.getBean(PluginCommonService.class); + if(ObjectUtils.isEmpty(pluginCommonService)) return false; + return pluginCommonService.isPluginLoaded(); + } + + + } diff --git a/backend/src/main/java/io/dataease/controller/sys/SystemParameterController.java b/backend/src/main/java/io/dataease/controller/sys/SystemParameterController.java index bafbffc95f..39a34846c7 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SystemParameterController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SystemParameterController.java @@ -2,6 +2,7 @@ package io.dataease.controller.sys; import io.dataease.base.domain.SystemParameter; import io.dataease.commons.constants.ParamConstants; +import io.dataease.controller.sys.response.MailInfo; import io.dataease.dto.SystemParameterDTO; import io.dataease.service.FileService; import io.dataease.service.system.SystemParameterService; @@ -28,6 +29,12 @@ public class SystemParameterController { @Resource private FileService fileService; + + @GetMapping("/mail/info") + public MailInfo mailInfo() { + return systemParameterService.mailInfo(ParamConstants.Classify.MAIL.getValue()); + } + @PostMapping("/edit/email") public void editMail(@RequestBody List systemParameter) { systemParameterService.editMail(systemParameter); diff --git a/backend/src/main/java/io/dataease/controller/sys/response/MailInfo.java b/backend/src/main/java/io/dataease/controller/sys/response/MailInfo.java new file mode 100644 index 0000000000..291345e9ed --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/sys/response/MailInfo.java @@ -0,0 +1,18 @@ +package io.dataease.controller.sys.response; + +import java.io.Serializable; + +import lombok.Data; + +@Data +public class MailInfo implements Serializable{ + + private String host; + private String port; + private String account; + private String password; + private String ssl; + private String tls; + private String recipient; + +} diff --git a/backend/src/main/java/io/dataease/service/system/SystemParameterService.java b/backend/src/main/java/io/dataease/service/system/SystemParameterService.java index aa4c0c41ca..ead28b0c6a 100644 --- a/backend/src/main/java/io/dataease/service/system/SystemParameterService.java +++ b/backend/src/main/java/io/dataease/service/system/SystemParameterService.java @@ -1,6 +1,5 @@ package io.dataease.service.system; -import com.alibaba.fastjson.JSON; import io.dataease.base.domain.FileMetadata; import io.dataease.base.domain.SystemParameter; import io.dataease.base.domain.SystemParameterExample; @@ -11,6 +10,7 @@ import io.dataease.commons.exception.DEException; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.EncryptUtils; import io.dataease.commons.utils.LogUtil; +import io.dataease.controller.sys.response.MailInfo; import io.dataease.dto.SystemParameterDTO; import io.dataease.i18n.Translator; import io.dataease.service.FileService; @@ -47,6 +47,34 @@ public class SystemParameterService { return extSystemParameterMapper.email(); } + + public MailInfo mailInfo(String type) { + List paramList = this.getParamList(type); + MailInfo mailInfo = new MailInfo(); + if (!CollectionUtils.isEmpty(paramList)) { + for (SystemParameter param : paramList) { + if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.SERVER.getValue())) { + mailInfo.setHost(param.getParamValue()); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.PORT.getValue())) { + mailInfo.setPort(param.getParamValue()); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.ACCOUNT.getValue())) { + mailInfo.setAccount(param.getParamValue()); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.PASSWORD.getValue())) { + String password = EncryptUtils.aesDecrypt(param.getParamValue()).toString(); + mailInfo.setPassword(password); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.SSL.getValue())) { + mailInfo.setSsl(param.getParamValue()); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.TLS.getValue())) { + mailInfo.setTls(param.getParamValue()); + } else if (StringUtils.equals(param.getParamKey(), ParamConstants.MAIL.RECIPIENTS.getValue())) { + mailInfo.setRecipient(param.getParamValue()); + } + } + } + return mailInfo; + } + + public String getSystemLanguage() { String result = StringUtils.EMPTY; SystemParameterExample example = new SystemParameterExample(); @@ -120,7 +148,7 @@ public class SystemParameterService { try { helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom(javaMailSender.getUsername()); - helper.setSubject("MeterSphere测试邮件 " ); + helper.setSubject("DataEase测试邮件 " ); helper.setText("这是一封测试邮件,邮件发送成功", true); helper.setTo(recipients); javaMailSender.send(mimeMessage); diff --git a/backend/src/main/resources/db/migration/V27__de1.4.sql b/backend/src/main/resources/db/migration/V27__de1.4.sql index 5a2d140e1c..bc80aa04ef 100644 --- a/backend/src/main/resources/db/migration/V27__de1.4.sql +++ b/backend/src/main/resources/db/migration/V27__de1.4.sql @@ -5,3 +5,7 @@ UPDATE `chart_view` SET `render` = 'antv' WHERE `type` = 'liquid'; ALTER TABLE `panel_link` ADD COLUMN `over_time` bigint(13) NULL DEFAULT NULL COMMENT '有效截止时间' AFTER `pwd`; + +BEGIN; +INSERT INTO `sys_menu` VALUES (6, 1, 0, 1, '系统参数', 'system-param', 'system/SysParam/index', 6, 'sys-tools', 'system-param', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL); +COMMIT; \ No newline at end of file diff --git a/frontend/src/api/system/email.js b/frontend/src/api/system/email.js new file mode 100644 index 0000000000..c5a7e6af41 --- /dev/null +++ b/frontend/src/api/system/email.js @@ -0,0 +1,30 @@ +import request from '@/utils/request' + +export function validate(data) { + return request({ + url: '/system/testConnection', + method: 'post', + timeout: 30000, + loading: true, + data + + }) +} + +export function emailInfo() { + return request({ + url: '/system/mail/info', + method: 'get', + loading: true + }) +} + +export function updateInfo(data) { + return request({ + url: '/system/edit/email', + method: 'post', + loading: true, + data + + }) +} diff --git a/frontend/src/api/user.js b/frontend/src/api/user.js index e9ddcd6ab0..cd321a0918 100644 --- a/frontend/src/api/user.js +++ b/frontend/src/api/user.js @@ -64,3 +64,10 @@ export function oidcStatus() { method: 'post' }) } + +export function pluginLoaded() { + return request({ + url: '/api/auth/isPluginLoaded', + method: 'post' + }) +} diff --git a/frontend/src/views/system/systemParamSettings/EmailSetting.vue b/frontend/src/views/system/SysParam/EmailSetting.vue similarity index 95% rename from frontend/src/views/system/systemParamSettings/EmailSetting.vue rename to frontend/src/views/system/SysParam/EmailSetting.vue index 1f529b79a5..722ce2c6be 100644 --- a/frontend/src/views/system/systemParamSettings/EmailSetting.vue +++ b/frontend/src/views/system/SysParam/EmailSetting.vue @@ -1,5 +1,5 @@