Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
5397e345
Commit
5397e345
authored
Jul 30, 2021
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增是否开启用户注册功能
parent
8ed7916b
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
451 additions
and
16 deletions
+451
-16
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
...om/ruoyi/web/controller/system/SysRegisterController.java
+38
-0
ruoyi-admin/src/main/resources/i18n/messages.properties
ruoyi-admin/src/main/resources/i18n/messages.properties
+1
-0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
...on/src/main/java/com/ruoyi/common/constant/Constants.java
+8
-1
ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
...rc/main/java/com/ruoyi/common/constant/UserConstants.java
+13
-1
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
...java/com/ruoyi/common/core/domain/model/RegisterBody.java
+11
-0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
.../main/java/com/ruoyi/framework/config/SecurityConfig.java
+3
-4
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
...ava/com/ruoyi/framework/manager/factory/AsyncFactory.java
+1
-1
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
...a/com/ruoyi/framework/web/service/SysRegisterService.java
+115
-0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
...c/main/java/com/ruoyi/system/service/ISysUserService.java
+9
-1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+11
-0
ruoyi-ui/src/api/login.js
ruoyi-ui/src/api/login.js
+12
-0
ruoyi-ui/src/router/index.js
ruoyi-ui/src/router/index.js
+5
-0
ruoyi-ui/src/views/login.vue
ruoyi-ui/src/views/login.vue
+9
-3
ruoyi-ui/src/views/register.vue
ruoyi-ui/src/views/register.vue
+208
-0
ruoyi-ui/src/views/system/user/index.vue
ruoyi-ui/src/views/system/user/index.vue
+2
-1
sql/ry_20210731.sql
sql/ry_20210731.sql
+5
-4
No files found.
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
0 → 100644
View file @
5397e345
package
com.ruoyi.web.controller.system
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ruoyi.common.core.controller.BaseController
;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.domain.model.RegisterBody
;
import
com.ruoyi.framework.web.service.SysRegisterService
;
import
com.ruoyi.system.service.ISysConfigService
;
/**
* 注册验证
*
* @author ruoyi
*/
@RestController
public
class
SysRegisterController
extends
BaseController
{
@Autowired
private
SysRegisterService
registerService
;
@Autowired
private
ISysConfigService
configService
;
@PostMapping
(
"/register"
)
public
AjaxResult
register
(
@RequestBody
RegisterBody
user
)
{
if
(!(
"true"
.
equals
(
configService
.
selectConfigByKey
(
"sys.account.registerUser"
))))
{
return
error
(
"当前系统没有开启注册功能!"
);
}
String
msg
=
registerService
.
register
(
user
);
return
StringUtils
.
isEmpty
(
msg
)
?
success
()
:
error
(
msg
);
}
}
ruoyi-admin/src/main/resources/i18n/messages.properties
View file @
5397e345
...
...
@@ -19,6 +19,7 @@ user.password.not.valid=* 5-50个字符
user.email.not.valid
=
邮箱格式错误
user.mobile.phone.number.not.valid
=
手机号格式错误
user.login.success
=
登录成功
user.register.success
=
注册成功
user.notfound
=
请重新登录
user.forcelogout
=
管理员强制退出,请重新登录
user.unknown.error
=
未知错误,请重新登录
...
...
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
View file @
5397e345
package
com.ruoyi.common.constant
;
import
io.jsonwebtoken.Claims
;
/**
* 通用常量信息
*
...
...
@@ -47,6 +49,11 @@ public class Constants
*/
public
static
final
String
LOGOUT
=
"Logout"
;
/**
* 注册
*/
public
static
final
String
REGISTER
=
"Register"
;
/**
* 登录失败
*/
...
...
@@ -95,7 +102,7 @@ public class Constants
/**
* 用户名称
*/
public
static
final
String
JWT_USERNAME
=
"sub"
;
public
static
final
String
JWT_USERNAME
=
Claims
.
SUBJECT
;
/**
* 用户头像
...
...
ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
View file @
5397e345
...
...
@@ -63,4 +63,16 @@ public class UserConstants
/** 校验返回结果码 */
public
final
static
String
UNIQUE
=
"0"
;
public
final
static
String
NOT_UNIQUE
=
"1"
;
/**
* 用户名长度限制
*/
public
static
final
int
USERNAME_MIN_LENGTH
=
2
;
public
static
final
int
USERNAME_MAX_LENGTH
=
20
;
/**
* 密码长度限制
*/
public
static
final
int
PASSWORD_MIN_LENGTH
=
5
;
public
static
final
int
PASSWORD_MAX_LENGTH
=
20
;
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
0 → 100644
View file @
5397e345
package
com.ruoyi.common.core.domain.model
;
/**
* 用户注册对象
*
* @author ruoyi
*/
public
class
RegisterBody
extends
LoginBody
{
}
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
View file @
5397e345
...
...
@@ -96,8 +96,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.
sessionManagement
().
sessionCreationPolicy
(
SessionCreationPolicy
.
STATELESS
).
and
()
// 过滤请求
.
authorizeRequests
()
// 对于登录login 验证码captchaImage 允许匿名访问
.
antMatchers
(
"/login"
,
"/captchaImage"
).
anonymous
()
// 对于登录login
注册register
验证码captchaImage 允许匿名访问
.
antMatchers
(
"/login"
,
"/
register"
,
"/
captchaImage"
).
anonymous
()
.
antMatchers
(
HttpMethod
.
GET
,
"/"
,
...
...
@@ -126,7 +126,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
httpSecurity
.
addFilterBefore
(
corsFilter
,
LogoutFilter
.
class
);
}
/**
* 强散列哈希加密实现
*/
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
View file @
5397e345
...
...
@@ -65,7 +65,7 @@ public class AsyncFactory
logininfor
.
setOs
(
os
);
logininfor
.
setMsg
(
message
);
// 日志状态
if
(
Constants
.
LOGIN_SUCCESS
.
equals
(
status
)
||
Constants
.
LOGOUT
.
equals
(
status
))
if
(
StringUtils
.
equalsAny
(
status
,
Constants
.
LOGIN_SUCCESS
,
Constants
.
LOGOUT
,
Constants
.
REGISTER
))
{
logininfor
.
setStatus
(
Constants
.
SUCCESS
);
}
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
0 → 100644
View file @
5397e345
package
com.ruoyi.framework.web.service
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
com.ruoyi.common.constant.Constants
;
import
com.ruoyi.common.constant.UserConstants
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.RegisterBody
;
import
com.ruoyi.common.core.redis.RedisCache
;
import
com.ruoyi.common.exception.user.CaptchaException
;
import
com.ruoyi.common.exception.user.CaptchaExpireException
;
import
com.ruoyi.common.utils.MessageUtils
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.framework.manager.AsyncManager
;
import
com.ruoyi.framework.manager.factory.AsyncFactory
;
import
com.ruoyi.system.service.ISysConfigService
;
import
com.ruoyi.system.service.ISysUserService
;
/**
* 注册校验方法
*
* @author ruoyi
*/
@Component
public
class
SysRegisterService
{
@Autowired
private
ISysUserService
userService
;
@Autowired
private
ISysConfigService
configService
;
@Autowired
private
RedisCache
redisCache
;
/**
* 注册
*/
public
String
register
(
RegisterBody
registerBody
)
{
String
msg
=
""
,
username
=
registerBody
.
getUsername
(),
password
=
registerBody
.
getPassword
();
boolean
captchaOnOff
=
configService
.
selectCaptchaOnOff
();
// 验证码开关
if
(
captchaOnOff
)
{
validateCaptcha
(
username
,
registerBody
.
getCode
(),
registerBody
.
getUuid
());
}
if
(
StringUtils
.
isEmpty
(
username
))
{
msg
=
"用户名不能为空"
;
}
else
if
(
StringUtils
.
isEmpty
(
password
))
{
msg
=
"用户密码不能为空"
;
}
else
if
(
username
.
length
()
<
UserConstants
.
USERNAME_MIN_LENGTH
||
username
.
length
()
>
UserConstants
.
USERNAME_MAX_LENGTH
)
{
msg
=
"账户长度必须在2到20个字符之间"
;
}
else
if
(
password
.
length
()
<
UserConstants
.
PASSWORD_MIN_LENGTH
||
password
.
length
()
>
UserConstants
.
PASSWORD_MAX_LENGTH
)
{
msg
=
"密码长度必须在5到20个字符之间"
;
}
else
if
(
UserConstants
.
NOT_UNIQUE
.
equals
(
userService
.
checkUserNameUnique
(
username
)))
{
msg
=
"保存用户'"
+
username
+
"'失败,注册账号已存在"
;
}
else
{
SysUser
sysUser
=
new
SysUser
();
sysUser
.
setUserName
(
username
);
sysUser
.
setNickName
(
username
);
sysUser
.
setPassword
(
SecurityUtils
.
encryptPassword
(
registerBody
.
getPassword
()));
boolean
regFlag
=
userService
.
registerUser
(
sysUser
);
if
(!
regFlag
)
{
msg
=
"注册失败,请联系系统管理人员"
;
}
else
{
AsyncManager
.
me
().
execute
(
AsyncFactory
.
recordLogininfor
(
username
,
Constants
.
REGISTER
,
MessageUtils
.
message
(
"user.register.success"
)));
}
}
return
msg
;
}
/**
* 校验验证码
*
* @param username 用户名
* @param code 验证码
* @param uuid 唯一标识
* @return 结果
*/
public
void
validateCaptcha
(
String
username
,
String
code
,
String
uuid
)
{
String
verifyKey
=
Constants
.
CAPTCHA_CODE_KEY
+
uuid
;
String
captcha
=
redisCache
.
getCacheObject
(
verifyKey
);
redisCache
.
deleteObject
(
verifyKey
);
if
(
captcha
==
null
)
{
throw
new
CaptchaExpireException
();
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
throw
new
CaptchaException
();
}
}
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
View file @
5397e345
...
...
@@ -105,6 +105,14 @@ public interface ISysUserService
*/
public
int
insertUser
(
SysUser
user
);
/**
* 注册用户信息
*
* @param user 用户信息
* @return 结果
*/
public
boolean
registerUser
(
SysUser
user
);
/**
* 修改用户信息
*
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
View file @
5397e345
...
...
@@ -246,6 +246,17 @@ public class SysUserServiceImpl implements ISysUserService
return
rows
;
}
/**
* 注册用户信息
*
* @param user 用户信息
* @return 结果
*/
public
boolean
registerUser
(
SysUser
user
)
{
return
userMapper
.
insertUser
(
user
)
>
0
;
}
/**
* 修改保存用户信息
*
...
...
ruoyi-ui/src/api/login.js
View file @
5397e345
...
...
@@ -15,6 +15,18 @@ export function login(username, password, code, uuid) {
})
}
// 注册方法
export
function
register
(
data
)
{
return
request
({
url
:
'
/register
'
,
headers
:
{
isToken
:
false
},
method
:
'
post
'
,
data
:
data
})
}
// 获取用户详细信息
export
function
getInfo
()
{
return
request
({
...
...
ruoyi-ui/src/router/index.js
View file @
5397e345
...
...
@@ -43,6 +43,11 @@ export const constantRoutes = [
component
:
(
resolve
)
=>
require
([
'
@/views/login
'
],
resolve
),
hidden
:
true
},
{
path
:
'
/register
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/register
'
],
resolve
),
hidden
:
true
},
{
path
:
'
/404
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/error/404
'
],
resolve
),
...
...
ruoyi-ui/src/views/login.vue
View file @
5397e345
...
...
@@ -44,6 +44,9 @@
<span
v-if=
"!loading"
>
登 录
</span>
<span
v-else
>
登 录 中...
</span>
</el-button>
<div
style=
"float: right;"
v-if=
"register"
>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link>
</div>
</el-form-item>
</el-form>
<!-- 底部 -->
...
...
@@ -73,15 +76,18 @@ export default {
},
loginRules
:
{
username
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
用户名不能为空
"
}
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的账号
"
}
],
password
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
密码不能为空
"
}
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的密码
"
}
],
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
验证码不能为空
"
}]
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
请输入验证码
"
}]
},
loading
:
false
,
// 验证码开关
captchaOnOff
:
true
,
// 注册开关
register
:
false
,
redirect
:
undefined
};
},
...
...
ruoyi-ui/src/views/register.vue
0 → 100644
View file @
5397e345
<
template
>
<div
class=
"register"
>
<el-form
ref=
"registerForm"
:model=
"registerForm"
:rules=
"registerRules"
class=
"register-form"
>
<h3
class=
"title"
>
若依后台管理系统
</h3>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"registerForm.username"
type=
"text"
auto-complete=
"off"
placeholder=
"账号"
>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model=
"registerForm.password"
type=
"password"
auto-complete=
"off"
placeholder=
"密码"
@
keyup.enter.native=
"handleRegister"
>
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-form-item>
<el-form-item
prop=
"confirmPassword"
>
<el-input
v-model=
"registerForm.confirmPassword"
type=
"password"
auto-complete=
"off"
placeholder=
"确认密码"
@
keyup.enter.native=
"handleRegister"
>
<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=
"captchaOnOff"
>
<el-input
v-model=
"registerForm.code"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 63%"
@
keyup.enter.native=
"handleRegister"
>
<svg-icon
slot=
"prefix"
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
</el-input>
<div
class=
"register-code"
>
<img
:src=
"codeUrl"
@
click=
"getCode"
class=
"register-code-img"
/>
</div>
</el-form-item>
<el-form-item
style=
"width:100%;"
>
<el-button
:loading=
"loading"
size=
"medium"
type=
"primary"
style=
"width:100%;"
@
click.native.prevent=
"handleRegister"
>
<span
v-if=
"!loading"
>
注 册
</span>
<span
v-else
>
注 册 中...
</span>
</el-button>
<div
style=
"float: right;"
>
<router-link
class=
"link-type"
:to=
"'/login'"
>
使用已有账户登录
</router-link>
</div>
</el-form-item>
</el-form>
<!-- 底部 -->
<div
class=
"el-register-footer"
>
<span>
Copyright © 2018-2021 ruoyi.vip All Rights Reserved.
</span>
</div>
</div>
</
template
>
<
script
>
import
{
getCodeImg
,
register
}
from
"
@/api/login
"
;
export
default
{
name
:
"
Register
"
,
data
()
{
const
equalToPassword
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
registerForm
.
password
!==
value
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
return
{
codeUrl
:
""
,
registerForm
:
{
username
:
""
,
password
:
""
,
confirmPassword
:
""
,
code
:
""
,
uuid
:
""
},
registerRules
:
{
username
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的账号
"
},
{
min
:
2
,
max
:
20
,
message
:
'
用户账号长度必须介于 2 和 20 之间
'
,
trigger
:
'
blur
'
}
],
password
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的密码
"
},
{
min
:
5
,
max
:
20
,
message
:
'
用户密码长度必须介于 5 和 20 之间
'
,
trigger
:
'
blur
'
}
],
confirmPassword
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请再次输入您的密码
"
},
{
required
:
true
,
validator
:
equalToPassword
,
trigger
:
"
blur
"
}
],
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
请输入验证码
"
}]
},
loading
:
false
,
captchaOnOff
:
true
};
},
created
()
{
this
.
getCode
();
},
methods
:
{
getCode
()
{
getCodeImg
().
then
(
res
=>
{
this
.
captchaOnOff
=
res
.
captchaOnOff
===
undefined
?
true
:
res
.
captchaOnOff
;
if
(
this
.
captchaOnOff
)
{
this
.
codeUrl
=
"
data:image/gif;base64,
"
+
res
.
img
;
this
.
registerForm
.
uuid
=
res
.
uuid
;
}
});
},
handleRegister
()
{
this
.
$refs
.
registerForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
register
(
this
.
registerForm
).
then
(
res
=>
{
const
username
=
this
.
registerForm
.
username
;
this
.
$alert
(
"
<font color='red'>恭喜你,您的账号
"
+
username
+
"
注册成功!</font>
"
,
'
系统提示
'
,
{
dangerouslyUseHTMLString
:
true
}).
then
(()
=>
{
this
.
$router
.
push
(
"
/login
"
);
}).
catch
(()
=>
{});
}).
catch
(()
=>
{
this
.
loading
=
false
;
if
(
this
.
captchaOnOff
)
{
this
.
getCode
();
}
})
}
});
}
}
};
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
.register
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
100%
;
background-image
:
url("../assets/images/login-background.jpg")
;
background-size
:
cover
;
}
.title
{
margin
:
0px
auto
30px
auto
;
text-align
:
center
;
color
:
#707070
;
}
.register-form
{
border-radius
:
6px
;
background
:
#ffffff
;
width
:
400px
;
padding
:
25px
25px
5px
25px
;
.el-input
{
height
:
38px
;
input
{
height
:
38px
;
}
}
.input-icon
{
height
:
39px
;
width
:
14px
;
margin-left
:
2px
;
}
}
.register-tip
{
font-size
:
13px
;
text-align
:
center
;
color
:
#bfbfbf
;
}
.register-code
{
width
:
33%
;
height
:
38px
;
float
:
right
;
img
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
}
.el-register-footer
{
height
:
40px
;
line-height
:
40px
;
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
text-align
:
center
;
color
:
#fff
;
font-family
:
Arial
;
font-size
:
12px
;
letter-spacing
:
1px
;
}
.register-code-img
{
height
:
38px
;
}
</
style
>
ruoyi-ui/src/views/system/user/index.vue
View file @
5397e345
...
...
@@ -436,7 +436,8 @@ export default {
// 表单校验
rules
:
{
userName
:
[
{
required
:
true
,
message
:
"
用户名称不能为空
"
,
trigger
:
"
blur
"
}
{
required
:
true
,
message
:
"
用户名称不能为空
"
,
trigger
:
"
blur
"
},
{
min
:
2
,
max
:
20
,
message
:
'
用户名称长度必须介于 2 和 20 之间
'
,
trigger
:
'
blur
'
}
],
nickName
:
[
{
required
:
true
,
message
:
"
用户昵称不能为空
"
,
trigger
:
"
blur
"
}
...
...
sql/ry_202107
13
.sql
→
sql/ry_202107
31
.sql
View file @
5397e345
...
...
@@ -537,7 +537,8 @@ create table sys_config (
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,浅色主题theme-light'
);
insert
into
sys_config
values
(
4
,
'账号自助-验证码开关'
,
'sys.account.captchaOnOff'
,
'true'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启登录验证码功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
4
,
'账号自助-验证码开关'
,
'sys.account.captchaOnOff'
,
'true'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启验证码功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
5
,
'账号自助-是否开启用户注册功能'
,
'sys.account.registerUser'
,
'false'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启注册用户功能(true开启,false关闭)'
);
-- ----------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment