From fd5414f82e6305eaf35297f63f9e7c95615f99e3 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 13 七月 2021 13:34:10 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue into dev
---
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java | 7 +++
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 47 ++++++++++++++++-------
ruoyi-ui/src/components/Editor/index.vue | 16 ++++----
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java | 12 ++++--
ruoyi-ui/src/components/ImageUpload/index.vue | 2
sql/ry_20210713.sql | 7 ++-
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 13 ++++++
ruoyi-ui/src/views/login.vue | 14 ++++---
8 files changed, 82 insertions(+), 36 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
index 2f303ba..4654516 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.framework.captcha.UnsignedMathGenerator;
import com.ruoyi.framework.config.properties.CaptchaProperties;
+import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -26,7 +27,7 @@
/**
* 楠岃瘉鐮佹搷浣滃鐞�
*
- * @author Lion Li
+ * @author ruoyi
*/
@RestController
public class CaptchaController {
@@ -47,15 +48,18 @@
@Autowired
private CaptchaProperties captchaProperties;
+ @Autowired
+ private ISysConfigService configService;
+
/**
* 鐢熸垚楠岃瘉鐮�
*/
@GetMapping("/captchaImage")
public AjaxResult getCode() {
Map<String, Object> ajax = new HashMap<>();
- Boolean enabled = captchaProperties.getEnabled();
- ajax.put("enabled", enabled);
- if (!enabled) {
+ boolean captchaOnOff = configService.selectCaptchaOnOff();
+ ajax.put("captchaOnOff", captchaOnOff);
+ if (!captchaOnOff) {
return AjaxResult.success(ajax);
}
// 淇濆瓨楠岃瘉鐮佷俊鎭�
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index d0b9511..47258dd 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -12,6 +12,7 @@
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.framework.config.properties.CaptchaProperties;
+import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
@@ -47,6 +48,9 @@
private ISysUserService userService;
@Autowired
+ private ISysConfigService configService;
+
+ @Autowired
private AsyncService asyncService;
/**
@@ -60,20 +64,12 @@
*/
public String login(String username, String password, String code, String uuid)
{
- HttpServletRequest request = ServletUtils.getRequest();
- if(captchaProperties.getEnabled()) {
- String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
- String captcha = redisCache.getCacheObject(verifyKey);
- redisCache.deleteObject(verifyKey);
- if (captcha == null) {
- asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request);
- throw new CaptchaExpireException();
- }
- if (!code.equalsIgnoreCase(captcha)) {
- asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request);
- throw new CaptchaException();
- }
- }
+ boolean captchaOnOff = configService.selectCaptchaOnOff();
+ // 楠岃瘉鐮佸紑鍏�
+ if (captchaOnOff)
+ {
+ validateCapcha(username, code, uuid);
+ }
// 鐢ㄦ埛楠岃瘉
Authentication authentication = null;
try
@@ -103,6 +99,29 @@
}
/**
+ * 鏍¢獙楠岃瘉鐮�
+ *
+ * @param username 鐢ㄦ埛鍚�
+ * @param code 楠岃瘉鐮�
+ * @param uuid 鍞竴鏍囪瘑
+ * @return 缁撴灉
+ */
+ public void validateCapcha(String username, String code, String uuid) {
+ HttpServletRequest request = ServletUtils.getRequest();
+ String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
+ String captcha = redisCache.getCacheObject(verifyKey);
+ redisCache.deleteObject(verifyKey);
+ if (captcha == null) {
+ asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request);
+ throw new CaptchaExpireException();
+ }
+ if (!code.equalsIgnoreCase(captcha)) {
+ asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request);
+ throw new CaptchaException();
+ }
+ }
+
+ /**
* 璁板綍鐧诲綍淇℃伅
*/
public void recordLoginInfo(SysUser user)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
index 429559b..b649c7f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
@@ -33,6 +33,13 @@
public String selectConfigByKey(String configKey);
/**
+ * 鑾峰彇楠岃瘉鐮佸紑鍏�
+ *
+ * @return true寮�鍚紝false鍏抽棴
+ */
+ public boolean selectCaptchaOnOff();
+
+ /**
* 鏌ヨ鍙傛暟閰嶇疆鍒楄〃
*
* @param config 鍙傛暟閰嶇疆淇℃伅
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
index dd7321a..41be807 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -94,6 +94,19 @@
}
/**
+ * 鑾峰彇楠岃瘉鐮佸紑鍏�
+ *
+ * @return true寮�鍚紝false鍏抽棴
+ */
+ public boolean selectCaptchaOnOff() {
+ String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff");
+ if (StrUtil.isEmpty(captchaOnOff)) {
+ return true;
+ }
+ return Convert.toBool(captchaOnOff);
+ }
+
+ /**
* 鏌ヨ鍙傛暟閰嶇疆鍒楄〃
*
* @param config 鍙傛暟閰嶇疆淇℃伅
diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue
index 98b9fa7..f78dfcc 100644
--- a/ruoyi-ui/src/components/Editor/index.vue
+++ b/ruoyi-ui/src/components/Editor/index.vue
@@ -130,14 +130,14 @@
this.quill.format("image", false);
}
});
- toolbar.addHandler("video", (value) => {
- this.uploadType = "video";
- if (value) {
- this.$refs.upload.$children[0].$refs.input.click();
- } else {
- this.quill.format("video", false);
- }
- });
+ // toolbar.addHandler("video", (value) => {
+ // this.uploadType = "video";
+ // if (value) {
+ // this.$refs.upload.$children[0].$refs.input.click();
+ // } else {
+ // this.quill.format("video", false);
+ // }
+ // });
}
this.Quill.pasteHTML(this.currentValue);
this.Quill.on("text-change", (delta, oldDelta, source) => {
diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue
index f2a7402..31940af 100644
--- a/ruoyi-ui/src/components/ImageUpload/index.vue
+++ b/ruoyi-ui/src/components/ImageUpload/index.vue
@@ -116,7 +116,7 @@
methods: {
// 鍒犻櫎鍥剧墖
handleRemove(file, fileList) {
- const findex = this.fileList.indexOf(file.name);
+ const findex = this.fileList.map(f => f.name).indexOf(file.name);
this.fileList.splice(findex, 1);
this.$emit("input", this.listToString(this.fileList));
},
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index e8da56b..a87cb9d 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -18,7 +18,7 @@
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
- <el-form-item prop="code" v-if="captchaEnabled">
+ <el-form-item prop="code" v-if="captchaOnOff">
<el-input
v-model="loginForm.code"
auto-complete="off"
@@ -81,8 +81,8 @@
code: [{ required: true, trigger: "change", message: "楠岃瘉鐮佷笉鑳戒负绌�" }]
},
loading: false,
- redirect: undefined,
- captchaEnabled:false
+ captchaOnOff: true,
+ redirect: undefined
};
},
watch: {
@@ -100,8 +100,8 @@
methods: {
getCode() {
getCodeImg().then(res => {
- this.captchaEnabled = res.data.enabled;
- if(res.data.enabled){
+ this.captchaOnOff = res.data.captchaOnOff === undefined ? true : res.data.captchaOnOff;
+ if (this.captchaOnOff) {
this.codeUrl = "data:image/gif;base64," + res.data.img;
this.loginForm.uuid = res.data.uuid;
}
@@ -134,7 +134,9 @@
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
}).catch(() => {
this.loading = false;
- this.getCode();
+ if (this.captchaOnOff) {
+ this.getCode();
+ }
});
}
});
diff --git a/sql/ry_20210210.sql b/sql/ry_20210713.sql
similarity index 98%
rename from sql/ry_20210210.sql
rename to sql/ry_20210713.sql
index 59a55f1..088960e 100644
--- a/sql/ry_20210210.sql
+++ b/sql/ry_20210713.sql
@@ -537,9 +537,10 @@
primary key (config_id)
) engine=innodb auto_increment=100 comment = '鍙傛暟閰嶇疆琛�';
-insert into sys_config values(1, '涓绘鏋堕〉-榛樿鐨偆鏍峰紡鍚嶇О', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '钃濊壊 skin-blue銆佺豢鑹� skin-green銆佺传鑹� skin-purple銆佺孩鑹� skin-red銆侀粍鑹� skin-yellow' );
-insert into sys_config values(2, '鐢ㄦ埛绠$悊-璐﹀彿鍒濆瀵嗙爜', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '鍒濆鍖栧瘑鐮� 123456' );
-insert into sys_config values(3, '涓绘鏋堕〉-渚ц竟鏍忎富棰�', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '娣辫壊涓婚theme-dark锛屾祬鑹蹭富棰榯heme-light' );
+insert into sys_config values(1, '涓绘鏋堕〉-榛樿鐨偆鏍峰紡鍚嶇О', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '钃濊壊 skin-blue銆佺豢鑹� skin-green銆佺传鑹� skin-purple銆佺孩鑹� skin-red銆侀粍鑹� skin-yellow' );
+insert into sys_config values(2, '鐢ㄦ埛绠$悊-璐﹀彿鍒濆瀵嗙爜', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '鍒濆鍖栧瘑鐮� 123456' );
+insert into sys_config values(3, '涓绘鏋堕〉-渚ц竟鏍忎富棰�', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '娣辫壊涓婚theme-dark锛屾祬鑹蹭富棰榯heme-light' );
+insert into sys_config values(4, '璐﹀彿鑷姪-楠岃瘉鐮佸紑鍏�', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', sysdate(), '', null, '鏄惁寮�鍚櫥褰曢獙璇佺爜鍔熻兘锛坱rue寮�鍚紝false鍏抽棴锛�');
-- ----------------------------
--
Gitblit v1.9.3