Skip to content

Commit 3bb8e45

Browse files
author
奇淼(piexlmax
authored
Merge pull request flipped-aurora#1133 from yesgs/main
添加用户的冻结功能
2 parents e8892dc + 0ef2a72 commit 3bb8e45

File tree

5 files changed

+51
-3
lines changed

5 files changed

+51
-3
lines changed

server/api/v1/system/sys_user.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ func (b *BaseApi) Login(c *gin.Context) {
3535
global.GVA_LOG.Error("登陆失败! 用户名不存在或者密码错误!", zap.Error(err))
3636
response.FailWithMessage("用户名不存在或者密码错误", c)
3737
} else {
38+
if user.Enable != 1 {
39+
global.GVA_LOG.Error("登陆失败! 用户被禁止登录!")
40+
response.FailWithMessage("用户被禁止登录", c)
41+
return
42+
}
3843
b.TokenNext(c, *user)
3944
}
4045
} else {
@@ -119,7 +124,7 @@ func (b *BaseApi) Register(c *gin.Context) {
119124
AuthorityId: v,
120125
})
121126
}
122-
user := &system.SysUser{Username: r.Username, NickName: r.NickName, Password: r.Password, HeaderImg: r.HeaderImg, AuthorityId: r.AuthorityId, Authorities: authorities}
127+
user := &system.SysUser{Username: r.Username, NickName: r.NickName, Password: r.Password, HeaderImg: r.HeaderImg, AuthorityId: r.AuthorityId, Authorities: authorities, Enable: r.Enable}
123128
userReturn, err := userService.Register(*user)
124129
if err != nil {
125130
global.GVA_LOG.Error("注册失败!", zap.Error(err))
@@ -296,6 +301,7 @@ func (b *BaseApi) SetUserInfo(c *gin.Context) {
296301
Phone: user.Phone,
297302
Email: user.Email,
298303
SideMode: user.SideMode,
304+
Enable: user.Enable,
299305
}); err != nil {
300306
global.GVA_LOG.Error("设置失败!", zap.Error(err))
301307
response.FailWithMessage("设置失败", c)
@@ -325,6 +331,7 @@ func (b *BaseApi) SetSelfInfo(c *gin.Context) {
325331
Phone: user.Phone,
326332
Email: user.Email,
327333
SideMode: user.SideMode,
334+
Enable: user.Enable,
328335
}); err != nil {
329336
global.GVA_LOG.Error("设置失败!", zap.Error(err))
330337
response.FailWithMessage("设置失败", c)

server/middleware/jwt.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ func JWTAuth() gin.HandlerFunc {
4444
c.Abort()
4545
return
4646
}
47+
48+
// 已登录用户被管理员禁用 需要使该用户的jwt失效 此处比较消耗性能 如果需要 请自行打开
4749
// 用户被删除的逻辑 需要优化 此处比较消耗性能 如果需要 请自行打开
4850
//if err, _ = userService.FindUserByUuid(claims.UUID.String()); err != nil {
4951
// _ = jwtService.JsonInBlacklist(system.JwtBlacklist{Jwt: token})

server/model/system/request/sys_user.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ type Register struct {
99
NickName string `json:"nickName" gorm:"default:'QMPlusUser'"`
1010
HeaderImg string `json:"headerImg" gorm:"default:'https://qmplusimg.henrongyi.top/gva_header.jpg'"`
1111
AuthorityId string `json:"authorityId" gorm:"default:888"`
12+
Enable int `json:"enable"`
1213
AuthorityIds []string `json:"authorityIds"`
1314
}
1415

@@ -46,5 +47,6 @@ type ChangeUserInfo struct {
4647
Email string `json:"email" gorm:"comment:用户邮箱"` // 用户邮箱
4748
HeaderImg string `json:"headerImg" gorm:"default:https://qmplusimg.henrongyi.top/gva_header.jpg;comment:用户头像"` // 用户头像
4849
SideMode string `json:"sideMode" gorm:"comment:用户侧边主题"` // 用户侧边主题
50+
Enable int `json:"enable" gorm:"comment:冻结用户"` //冻结用户
4951
Authorities []model.SysAuthority `json:"-" gorm:"many2many:sys_user_authority;"`
5052
}

server/model/system/sys_user.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ type SysUser struct {
1818
AuthorityId string `json:"authorityId" gorm:"default:888;comment:用户角色ID"` // 用户角色ID
1919
Authority SysAuthority `json:"authority" gorm:"foreignKey:AuthorityId;references:AuthorityId;comment:用户角色"`
2020
Authorities []SysAuthority `json:"authorities" gorm:"many2many:sys_user_authority;"`
21-
Phone string `json:"phone" gorm:"comment:用户手机号"` // 用户手机号
22-
Email string `json:"email" gorm:"comment:用户邮箱"` // 用户邮箱
21+
Phone string `json:"phone" gorm:"comment:用户手机号"` // 用户手机号
22+
Email string `json:"email" gorm:"comment:用户邮箱"` // 用户邮箱
23+
Enable int `json:"enable" gorm:"default:1;comment:用户是否被冻结 1正常 2冻结"` //用户是否被冻结 1正常 2冻结
2324
}
2425

2526
func (SysUser) TableName() string {

web/src/view/superAdmin/user/user.vue

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@
3333
/>
3434
</template>
3535
</el-table-column>
36+
<el-table-column align="left" label="启用" min-width="150">
37+
<template #default="scope">
38+
<el-switch
39+
v-model="scope.row.enable"
40+
inline-prompt
41+
:active-value="1"
42+
:inactive-value="2"
43+
@change="()=>{switchEnable(scope.row)}"
44+
/>
45+
</template>
46+
</el-table-column>
3647

3748
<el-table-column label="操作" min-width="250" fixed="right">
3849
<template #default="scope">
@@ -99,6 +110,14 @@
99110
:clearable="false"
100111
/>
101112
</el-form-item>
113+
<el-form-item label="启用" prop="disabled">
114+
<el-switch
115+
v-model="userInfo.enable"
116+
inline-prompt
117+
:active-value="1"
118+
:inactive-value="2"
119+
/>
120+
</el-form-item>
102121
<el-form-item label="头像" label-width="80px">
103122
<div style="display:inline-block" @click="openHeaderChange">
104123
<img v-if="userInfo.headerImg" class="header-img-box" :src="(userInfo.headerImg && userInfo.headerImg.slice(0, 4) !== 'http')?path+userInfo.headerImg:userInfo.headerImg">
@@ -268,6 +287,7 @@ const userInfo = ref({
268287
headerImg: '',
269288
authorityId: '',
270289
authorityIds: [],
290+
enable: 1,
271291
})
272292
273293
const rules = ref({
@@ -349,6 +369,22 @@ const openEdit = (row) => {
349369
addUserDialog.value = true
350370
}
351371
372+
373+
const switchEnable = async(row) => {
374+
userInfo.value = JSON.parse(JSON.stringify(row))
375+
await nextTick()
376+
const req = {
377+
...userInfo.value
378+
}
379+
const res = await setUserInfo(req)
380+
if (res.code === 0) {
381+
ElMessage({ type: 'success', message: '编辑成功' })
382+
await getTableData()
383+
userInfo.value.headerImg = ''
384+
userInfo.value.authorityIds = []
385+
}
386+
}
387+
352388
</script>
353389
354390
<style lang="scss">

0 commit comments

Comments
 (0)