Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyang
sts网站
Commits
8ff01355
Commit
8ff01355
authored
May 22, 2025
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
初始密码支持自定义修改策略
parent
673249d3
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
74 additions
and
31 deletions
+74
-31
SysLoginController.java
...a/com/ruoyi/web/controller/system/SysLoginController.java
+14
-0
SysUser.java
...ain/java/com/ruoyi/common/core/domain/entity/SysUser.java
+14
-0
SysUserMapper.xml
...system/src/main/resources/mapper/system/SysUserMapper.xml
+21
-20
user.js
ruoyi-ui/src/store/modules/user.js
+9
-1
index.vue
ruoyi-ui/src/views/system/user/profile/index.vue
+6
-2
ry_20250522.sql
sql/ry_20250522.sql
+10
-8
No files found.
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
View file @
8ff01355
package
com
.
ruoyi
.
web
.
controller
.
system
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -13,10 +14,12 @@ import com.ruoyi.common.core.domain.entity.SysMenu;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginBody
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.core.text.Convert
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.framework.web.service.SysLoginService
;
import
com.ruoyi.framework.web.service.SysPermissionService
;
import
com.ruoyi.framework.web.service.TokenService
;
import
com.ruoyi.system.service.ISysConfigService
;
import
com.ruoyi.system.service.ISysMenuService
;
/**
...
...
@@ -39,6 +42,9 @@ public class SysLoginController
@Autowired
private
TokenService
tokenService
;
@Autowired
private
ISysConfigService
configService
;
/**
* 登录方法
*
...
...
@@ -79,6 +85,7 @@ public class SysLoginController
ajax
.
put
(
"user"
,
user
);
ajax
.
put
(
"roles"
,
roles
);
ajax
.
put
(
"permissions"
,
permissions
);
ajax
.
put
(
"isDefaultModifyPwd"
,
initPasswordIsModify
(
user
.
getPwdUpdateDate
()));
return
ajax
;
}
...
...
@@ -94,4 +101,11 @@ public class SysLoginController
List
<
SysMenu
>
menus
=
menuService
.
selectMenuTreeByUserId
(
userId
);
return
AjaxResult
.
success
(
menuService
.
buildMenus
(
menus
));
}
// 检查初始密码是否提醒修改
public
boolean
initPasswordIsModify
(
Date
pwdUpdateDate
)
{
Integer
initPasswordModify
=
Convert
.
toInt
(
configService
.
selectConfigByKey
(
"sys.account.initPasswordModify"
));
return
initPasswordModify
!=
null
&&
initPasswordModify
==
1
&&
pwdUpdateDate
==
null
;
}
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
View file @
8ff01355
...
...
@@ -70,6 +70,9 @@ public class SysUser extends BaseEntity
@Excel
(
name
=
"最后登录时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
,
type
=
Type
.
EXPORT
)
private
Date
loginDate
;
/** 密码最后更新时间 */
private
Date
pwdUpdateDate
;
/** 部门对象 */
@Excels
({
@Excel
(
name
=
"部门名称"
,
targetAttr
=
"deptName"
,
type
=
Type
.
EXPORT
),
...
...
@@ -247,6 +250,16 @@ public class SysUser extends BaseEntity
this
.
loginDate
=
loginDate
;
}
public
Date
getPwdUpdateDate
()
{
return
pwdUpdateDate
;
}
public
void
setPwdUpdateDate
(
Date
pwdUpdateDate
)
{
this
.
pwdUpdateDate
=
pwdUpdateDate
;
}
public
SysDept
getDept
()
{
return
dept
;
...
...
@@ -313,6 +326,7 @@ public class SysUser extends BaseEntity
.
append
(
"delFlag"
,
getDelFlag
())
.
append
(
"loginIp"
,
getLoginIp
())
.
append
(
"loginDate"
,
getLoginDate
())
.
append
(
"pwdUpdateDate"
,
getPwdUpdateDate
())
.
append
(
"createBy"
,
getCreateBy
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateBy"
,
getUpdateBy
())
...
...
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
View file @
8ff01355
...
...
@@ -5,24 +5,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper
namespace=
"com.ruoyi.system.mapper.SysUserMapper"
>
<resultMap
type=
"SysUser"
id=
"SysUserResult"
>
<id
property=
"userId"
column=
"user_id"
/>
<result
property=
"deptId"
column=
"dept_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"nickName"
column=
"nick_name"
/>
<result
property=
"email"
column=
"email"
/>
<result
property=
"phonenumber"
column=
"phonenumber"
/>
<result
property=
"sex"
column=
"sex"
/>
<result
property=
"avatar"
column=
"avatar"
/>
<result
property=
"password"
column=
"password"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"loginIp"
column=
"login_ip"
/>
<result
property=
"loginDate"
column=
"login_date"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
<id
property=
"userId"
column=
"user_id"
/>
<result
property=
"deptId"
column=
"dept_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"nickName"
column=
"nick_name"
/>
<result
property=
"email"
column=
"email"
/>
<result
property=
"phonenumber"
column=
"phonenumber"
/>
<result
property=
"sex"
column=
"sex"
/>
<result
property=
"avatar"
column=
"avatar"
/>
<result
property=
"password"
column=
"password"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"loginIp"
column=
"login_ip"
/>
<result
property=
"loginDate"
column=
"login_date"
/>
<result
property=
"pwdUpdateDate"
column=
"pwd_update_date"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
<association
property=
"dept"
javaType=
"SysDept"
resultMap=
"deptResult"
/>
<collection
property=
"roles"
javaType=
"java.util.List"
resultMap=
"RoleResult"
/>
</resultMap>
...
...
@@ -47,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql
id=
"selectUserVo"
>
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.
pwd_update_date, u.
create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
...
...
@@ -203,7 +204,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<update
id=
"resetUserPwd"
parameterType=
"SysUser"
>
update sys_user set password = #{password} where user_name = #{userName}
update sys_user set p
wd_update_date = sysdate(), p
assword = #{password} where user_name = #{userName}
</update>
<delete
id=
"deleteUserById"
parameterType=
"Long"
>
...
...
ruoyi-ui/src/store/modules/user.js
View file @
8ff01355
import
router
from
'@/router'
import
{
MessageBox
,
}
from
'element-ui'
import
{
login
,
logout
,
getInfo
}
from
'@/api/login'
import
{
getToken
,
setToken
,
removeToken
}
from
'@/utils/auth'
import
{
isHttp
,
isEmpty
}
from
"@/utils/validate"
...
...
@@ -24,7 +26,7 @@ const user = {
SET_NAME
:
(
state
,
name
)
=>
{
state
.
name
=
name
},
SET_NICK_NAME
:
(
state
,
nickName
)
=>
{
SET_NICK_NAME
:
(
state
,
nickName
)
=>
{
state
.
nickName
=
nickName
},
SET_AVATAR
:
(
state
,
avatar
)
=>
{
...
...
@@ -75,6 +77,12 @@ const user = {
commit
(
'SET_NAME'
,
user
.
userName
)
commit
(
'SET_NICK_NAME'
,
user
.
nickName
)
commit
(
'SET_AVATAR'
,
avatar
)
/* 初始密码提示 */
if
(
res
.
isDefaultModifyPwd
)
{
MessageBox
.
confirm
(
'您的密码还是初始密码,请修改密码!'
,
'安全提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
router
.
push
({
name
:
'Profile'
,
params
:
{
activeTab
:
'resetPwd'
}
})
}).
catch
(()
=>
{})
}
resolve
(
res
)
}).
catch
(
error
=>
{
reject
(
error
)
...
...
ruoyi-ui/src/views/system/user/profile/index.vue
View file @
8ff01355
...
...
@@ -44,7 +44,7 @@
<div
slot=
"header"
class=
"clearfix"
>
<span>
基本资料
</span>
</div>
<el-tabs
v-model=
"
active
Tab"
>
<el-tabs
v-model=
"
selected
Tab"
>
<el-tab-pane
label=
"基本资料"
name=
"userinfo"
>
<userInfo
:user=
"user"
/>
</el-tab-pane>
...
...
@@ -72,10 +72,14 @@ export default {
user
:
{},
roleGroup
:
{},
postGroup
:
{},
active
Tab
:
"userinfo"
selected
Tab
:
"userinfo"
}
},
created
()
{
const
activeTab
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
activeTab
if
(
activeTab
)
{
this
.
selectedTab
=
activeTab
}
this
.
getUser
()
},
methods
:
{
...
...
sql/ry_20250
417
.sql
→
sql/ry_20250
522
.sql
View file @
8ff01355
...
...
@@ -54,6 +54,7 @@ create table sys_user (
del_flag
char
(
1
)
default
'0'
comment
'删除标志(0代表存在 2代表删除)'
,
login_ip
varchar
(
128
)
default
''
comment
'最后登录IP'
,
login_date
datetime
comment
'最后登录时间'
,
pwd_update_date
datetime
comment
'密码最后更新时间'
,
create_by
varchar
(
64
)
default
''
comment
'创建者'
,
create_time
datetime
comment
'创建时间'
,
update_by
varchar
(
64
)
default
''
comment
'更新者'
,
...
...
@@ -65,8 +66,8 @@ create table sys_user (
-- ----------------------------
-- 初始化-用户信息表数据
-- ----------------------------
insert
into
sys_user
values
(
1
,
103
,
'admin'
,
'若依'
,
'00'
,
'ry@163.com'
,
'15888888888'
,
'1'
,
''
,
'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2'
,
'0'
,
'0'
,
'127.0.0.1'
,
sysdate
(),
'admin'
,
sysdate
(),
''
,
null
,
'管理员'
);
insert
into
sys_user
values
(
2
,
105
,
'ry'
,
'若依'
,
'00'
,
'ry@qq.com'
,
'15666666666'
,
'1'
,
''
,
'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2'
,
'0'
,
'0'
,
'127.0.0.1'
,
sysdate
(),
'admin'
,
sysdate
(),
''
,
null
,
'测试员'
);
insert
into
sys_user
values
(
1
,
103
,
'admin'
,
'若依'
,
'00'
,
'ry@163.com'
,
'15888888888'
,
'1'
,
''
,
'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2'
,
'0'
,
'0'
,
'127.0.0.1'
,
sysdate
(),
sysdate
(),
'admin'
,
sysdate
(),
''
,
null
,
'管理员'
);
insert
into
sys_user
values
(
2
,
105
,
'ry'
,
'若依'
,
'00'
,
'ry@qq.com'
,
'15666666666'
,
'1'
,
''
,
'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2'
,
'0'
,
'0'
,
'127.0.0.1'
,
sysdate
(),
sysdate
(),
'admin'
,
sysdate
(),
''
,
null
,
'测试员'
);
-- ----------------------------
...
...
@@ -544,12 +545,13 @@ create table sys_config (
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,浅色主题theme-light'
);
insert
into
sys_config
values
(
4
,
'账号自助-验证码开关'
,
'sys.account.captchaEnabled'
,
'true'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启验证码功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
5
,
'账号自助-是否开启用户注册功能'
,
'sys.account.registerUser'
,
'false'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启注册用户功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
6
,
'用户登录-黑名单列表'
,
'sys.login.blackIPList'
,
''
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)'
);
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.captchaEnabled'
,
'true'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启验证码功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
5
,
'账号自助-是否开启用户注册功能'
,
'sys.account.registerUser'
,
'false'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'是否开启注册用户功能(true开启,false关闭)'
);
insert
into
sys_config
values
(
6
,
'用户登录-黑名单列表'
,
'sys.login.blackIPList'
,
''
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)'
);
insert
into
sys_config
values
(
7
,
'用户管理-初始密码修改策略'
,
'sys.account.initPasswordModify'
,
'1'
,
'Y'
,
'admin'
,
sysdate
(),
''
,
null
,
'0:初始密码修改策略关闭,没有任何提示,1:提醒用户,如果未修改初始密码,则在登录时就会提醒修改密码对话框'
);
-- ----------------------------
...
...
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