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 @@