Skip to content

Commit 63de74c

Browse files
xbingWdhsifssawesomeYG
authored
Feat/v2.39.0 (#239)
* feat: support user block * fix: user list param * fix: block logic * fix: llm migrate * fix: space export dir * feat: Implement user blocking functionality with UI, API, type definitions, and enhanced error handling, alongside improved KB document search and file upload progress display. * Update ui/admin/src/pages/user/UserList.tsx --------- Co-authored-by: 姚凯 <kai.yao@chaitin.com> Co-authored-by: awesomeYG <gang.yang@chaitin.com>
1 parent 456cb62 commit 63de74c

30 files changed

Lines changed: 603 additions & 111 deletions

File tree

.github/workflows/build-base-img.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: anydoc
2525
dockerfile: docker/anydoc/Dockerfile
2626
context: docker/anydoc
27-
tag: "v0.9.10"
27+
tag: "v0.9.11"
2828
- name: db
2929
dockerfile: docker/db/Dockerfile
3030
context: docker/db
@@ -44,7 +44,7 @@ jobs:
4444
- name: raglite
4545
dockerfile: docker/raglite/Dockerfile
4646
context: docker/raglite
47-
tag: "v2.15.1"
47+
tag: "v2.15.2"
4848

4949
steps:
5050
- name: Checkout code

backend/docs/docs.go

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4881,6 +4881,43 @@ const docTemplate = `{
48814881
}
48824882
}
48834883
},
4884+
"/admin/user/{user_id}/block": {
4885+
"put": {
4886+
"produces": [
4887+
"application/json"
4888+
],
4889+
"tags": [
4890+
"user"
4891+
],
4892+
"summary": "block user",
4893+
"parameters": [
4894+
{
4895+
"type": "integer",
4896+
"description": "user id",
4897+
"name": "user_id",
4898+
"in": "path",
4899+
"required": true
4900+
},
4901+
{
4902+
"description": "request params",
4903+
"name": "req",
4904+
"in": "body",
4905+
"required": true,
4906+
"schema": {
4907+
"$ref": "#/definitions/svc.UserBlockReq"
4908+
}
4909+
}
4910+
],
4911+
"responses": {
4912+
"200": {
4913+
"description": "OK",
4914+
"schema": {
4915+
"$ref": "#/definitions/context.Response"
4916+
}
4917+
}
4918+
}
4919+
}
4920+
},
48844921
"/bot": {
48854922
"get": {
48864923
"produces": [
@@ -9972,6 +10009,9 @@ const docTemplate = `{
997210009
"avatar": {
997310010
"type": "string"
997410011
},
10012+
"block_until": {
10013+
"type": "integer"
10014+
},
997510015
"builtin": {
997610016
"type": "boolean"
997710017
},
@@ -9996,9 +10036,6 @@ const docTemplate = `{
999610036
"last_login": {
999710037
"type": "integer"
999810038
},
9999-
"name": {
10000-
"type": "string"
10001-
},
1000210039
"org_ids": {
1000310040
"type": "array",
1000410041
"items": {
@@ -10017,6 +10054,10 @@ const docTemplate = `{
1001710054
"updated_at": {
1001810055
"type": "integer"
1001910056
},
10057+
"username": {
10058+
"description": "username: 为了兼容之前的参数名",
10059+
"type": "string"
10060+
},
1002010061
"web_notify": {
1002110062
"type": "boolean"
1002210063
}
@@ -10031,6 +10072,9 @@ const docTemplate = `{
1003110072
"avatar": {
1003210073
"type": "string"
1003310074
},
10075+
"block_until": {
10076+
"type": "integer"
10077+
},
1003410078
"builtin": {
1003510079
"type": "boolean"
1003610080
},
@@ -10068,6 +10112,7 @@ const docTemplate = `{
1006810112
"type": "integer"
1006910113
},
1007010114
"username": {
10115+
"description": "username: 为了兼容之前的参数名",
1007110116
"type": "string"
1007210117
},
1007310118
"web_notify": {
@@ -11874,6 +11919,14 @@ const docTemplate = `{
1187411919
}
1187511920
}
1187611921
},
11922+
"svc.UserBlockReq": {
11923+
"type": "object",
11924+
"properties": {
11925+
"until": {
11926+
"type": "integer"
11927+
}
11928+
}
11929+
},
1187711930
"svc.UserJoinOrgReq": {
1187811931
"type": "object",
1187911932
"properties": {
@@ -11899,6 +11952,9 @@ const docTemplate = `{
1189911952
"avatar": {
1190011953
"type": "string"
1190111954
},
11955+
"block_until": {
11956+
"type": "integer"
11957+
},
1190211958
"builtin": {
1190311959
"type": "boolean"
1190411960
},

backend/docs/swagger.json

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4874,6 +4874,43 @@
48744874
}
48754875
}
48764876
},
4877+
"/admin/user/{user_id}/block": {
4878+
"put": {
4879+
"produces": [
4880+
"application/json"
4881+
],
4882+
"tags": [
4883+
"user"
4884+
],
4885+
"summary": "block user",
4886+
"parameters": [
4887+
{
4888+
"type": "integer",
4889+
"description": "user id",
4890+
"name": "user_id",
4891+
"in": "path",
4892+
"required": true
4893+
},
4894+
{
4895+
"description": "request params",
4896+
"name": "req",
4897+
"in": "body",
4898+
"required": true,
4899+
"schema": {
4900+
"$ref": "#/definitions/svc.UserBlockReq"
4901+
}
4902+
}
4903+
],
4904+
"responses": {
4905+
"200": {
4906+
"description": "OK",
4907+
"schema": {
4908+
"$ref": "#/definitions/context.Response"
4909+
}
4910+
}
4911+
}
4912+
}
4913+
},
48774914
"/bot": {
48784915
"get": {
48794916
"produces": [
@@ -9965,6 +10002,9 @@
996510002
"avatar": {
996610003
"type": "string"
996710004
},
10005+
"block_until": {
10006+
"type": "integer"
10007+
},
996810008
"builtin": {
996910009
"type": "boolean"
997010010
},
@@ -9989,9 +10029,6 @@
998910029
"last_login": {
999010030
"type": "integer"
999110031
},
9992-
"name": {
9993-
"type": "string"
9994-
},
999510032
"org_ids": {
999610033
"type": "array",
999710034
"items": {
@@ -10010,6 +10047,10 @@
1001010047
"updated_at": {
1001110048
"type": "integer"
1001210049
},
10050+
"username": {
10051+
"description": "username: 为了兼容之前的参数名",
10052+
"type": "string"
10053+
},
1001310054
"web_notify": {
1001410055
"type": "boolean"
1001510056
}
@@ -10024,6 +10065,9 @@
1002410065
"avatar": {
1002510066
"type": "string"
1002610067
},
10068+
"block_until": {
10069+
"type": "integer"
10070+
},
1002710071
"builtin": {
1002810072
"type": "boolean"
1002910073
},
@@ -10061,6 +10105,7 @@
1006110105
"type": "integer"
1006210106
},
1006310107
"username": {
10108+
"description": "username: 为了兼容之前的参数名",
1006410109
"type": "string"
1006510110
},
1006610111
"web_notify": {
@@ -11867,6 +11912,14 @@
1186711912
}
1186811913
}
1186911914
},
11915+
"svc.UserBlockReq": {
11916+
"type": "object",
11917+
"properties": {
11918+
"until": {
11919+
"type": "integer"
11920+
}
11921+
}
11922+
},
1187011923
"svc.UserJoinOrgReq": {
1187111924
"type": "object",
1187211925
"properties": {
@@ -11892,6 +11945,9 @@
1189211945
"avatar": {
1189311946
"type": "string"
1189411947
},
11948+
"block_until": {
11949+
"type": "integer"
11950+
},
1189511951
"builtin": {
1189611952
"type": "boolean"
1189711953
},

backend/docs/swagger.yaml

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,6 +1201,8 @@ definitions:
12011201
properties:
12021202
avatar:
12031203
type: string
1204+
block_until:
1205+
type: integer
12041206
builtin:
12051207
type: boolean
12061208
created_at:
@@ -1217,8 +1219,6 @@ definitions:
12171219
type: string
12181220
last_login:
12191221
type: integer
1220-
name:
1221-
type: string
12221222
org_ids:
12231223
items:
12241224
type: integer
@@ -1231,6 +1231,9 @@ definitions:
12311231
$ref: '#/definitions/model.UserRole'
12321232
updated_at:
12331233
type: integer
1234+
username:
1235+
description: 'username: 为了兼容之前的参数名'
1236+
type: string
12341237
web_notify:
12351238
type: boolean
12361239
type: object
@@ -1240,6 +1243,8 @@ definitions:
12401243
type: integer
12411244
avatar:
12421245
type: string
1246+
block_until:
1247+
type: integer
12431248
builtin:
12441249
type: boolean
12451250
cors:
@@ -1265,6 +1270,7 @@ definitions:
12651270
uid:
12661271
type: integer
12671272
username:
1273+
description: 'username: 为了兼容之前的参数名'
12681274
type: string
12691275
web_notify:
12701276
type: boolean
@@ -2469,6 +2475,11 @@ definitions:
24692475
enable:
24702476
type: boolean
24712477
type: object
2478+
svc.UserBlockReq:
2479+
properties:
2480+
until:
2481+
type: integer
2482+
type: object
24722483
svc.UserJoinOrgReq:
24732484
properties:
24742485
org_ids:
@@ -2486,6 +2497,8 @@ definitions:
24862497
properties:
24872498
avatar:
24882499
type: string
2500+
block_until:
2501+
type: integer
24892502
builtin:
24902503
type: boolean
24912504
created_at:
@@ -5500,6 +5513,30 @@ paths:
55005513
summary: update user
55015514
tags:
55025515
- user
5516+
/admin/user/{user_id}/block:
5517+
put:
5518+
parameters:
5519+
- description: user id
5520+
in: path
5521+
name: user_id
5522+
required: true
5523+
type: integer
5524+
- description: request params
5525+
in: body
5526+
name: req
5527+
required: true
5528+
schema:
5529+
$ref: '#/definitions/svc.UserBlockReq'
5530+
produces:
5531+
- application/json
5532+
responses:
5533+
"200":
5534+
description: OK
5535+
schema:
5536+
$ref: '#/definitions/context.Response'
5537+
summary: block user
5538+
tags:
5539+
- user
55035540
/admin/user/history/search:
55045541
get:
55055542
parameters:

backend/intercept/auth.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ func authUser(ctx *context.Context, freeAuth bool, j *jwt.Generator, user *svc.U
8484
UserCore: model.UserCore{
8585
AuthType: model.AuthTypeAPIToken,
8686
},
87-
Role: model.UserRoleAdmin,
87+
UserBasic: model.UserBasic{
88+
Role: model.UserRoleAdmin,
89+
},
8890
}, nil
8991
} else {
9092
return nil, errors.New("auth token is empty")
@@ -120,15 +122,7 @@ func authUser(ctx *context.Context, freeAuth bool, j *jwt.Generator, user *svc.U
120122

121123
return &model.UserInfo{
122124
UserCore: core,
123-
OrgIDs: item.OrgIDs,
124-
Role: item.Role,
125-
Email: item.Email,
126-
Username: item.Name,
127-
Intro: item.Intro,
128-
Avatar: item.Avatar,
129-
Builtin: item.Builtin,
125+
UserBasic: item.UserBasic,
130126
NoPassword: item.Password == "",
131-
Point: item.Point,
132-
WebNotify: item.WebNotify,
133127
}, nil
134128
}

0 commit comments

Comments
 (0)