diff --git a/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25.xml b/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25.xml
index 4ae7c0d..e3f5756 100644
--- a/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25.xml
+++ b/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25.xml
@@ -11,9 +11,9 @@
4||10|c|G
4||10|C|G
4||10|T|G
- 7430
+ 10102
16.3
- 1716108620
+ 1719810879
true ACDT
true ACSST
false ACST
@@ -808,7 +808,7 @@ false Zulu
13474||10|C|G
13474||-9223372036854775808|U|G
13474||10|U|G
- 7430
+ 10102
37312
postgres
@@ -838,50 +838,50 @@ false Zulu
1
1
-
+
+ 4544
+
+
+ 6304
+
+
6171
-
- 6181
+
+ 4571
-
- 6182
-
-
+
3373
3374
3375
3377
-
+
+ 6181
+
+
3374
-
+
3375
-
- 3377
-
-
+
4569
-
- 4570
-
-
- 4571
-
-
+
4200
-
- 4544
+
+ 3377
-
+
4550
-
- 6304
+
+ 6182
+
+
+ 4570
1
@@ -4249,8 +4249,8 @@ false Zulu
standard public schema
1
- 7430
- 2024-05-20.14:41:32
+ 10102
+ 2024-07-04.15:02:40
2200
523
pg_database_owner
@@ -4303,7 +4303,15 @@ false Zulu
6247
littlesheep
-
+
+ bigint|0s
+ 47413
+ 1
+ 1
+ 10006
+ postgres
+
+
bigint|0s
37324
1
@@ -4311,7 +4319,7 @@ false Zulu
6227
littlesheep
-
+
bigint|0s
37526
1
@@ -4319,7 +4327,15 @@ false Zulu
6259
littlesheep
-
+
+ bigint|0s
+ 47120
+ 1
+ 1
+ 8941
+ postgres
+
+
bigint|0s
37459
1
@@ -4327,7 +4343,7 @@ false Zulu
6245
littlesheep
-
+
bigint|0s
37509
1
@@ -4335,7 +4351,7 @@ false Zulu
6251
littlesheep
-
+
bigint|0s
37489
1
@@ -4343,7 +4359,7 @@ false Zulu
6249
littlesheep
-
+
bigint|0s
37562
1
@@ -4351,7 +4367,7 @@ false Zulu
6430
littlesheep
-
+
bigint|0s
37551
1
@@ -4359,7 +4375,15 @@ false Zulu
6427
littlesheep
-
+
+ bigint|0s
+ 47321
+ 1
+ 1
+ 9536
+ postgres
+
+
bigint|0s
37403
1
@@ -4367,91 +4391,109 @@ false Zulu
6238
littlesheep
-
+
-
+
-
+
-
+
37340
- 6229
+ 9548
2
littlesheep
-
+
37314
- 7177
+ 7432
2
littlesheep
-
+
-
+
+ 47414
+ 10006
+ 2
+ postgres
+
+
-
+
-
+
+ 47121
+ 8945
+ 2
+ postgres
+
+
37460
- 6245
+ 9525
2
littlesheep
-
+
-
+
37490
- 6249
+ 8944
2
littlesheep
-
+
-
+
-
+
+ 47322
+ 9549
+ 2
+ postgres
+
+
-
+
bigint|0s
nextval('passport_account_contacts_id_seq'::regclass)
1
@@ -4460,68 +4502,68 @@ false Zulu
37369
20
-
+
timestamp with time zone|0s
2
6233
1184
-
+
timestamp with time zone|0s
3
6233
1184
-
+
timestamp with time zone|0s
4
6233
1184
-
+
smallint|0s
5
6233
21
-
+
text|0s
6
6233
25
-
+
boolean|0s
7
6233
16
-
+
boolean|0s
8
6233
16
-
+
timestamp with time zone|0s
9
6233
1184
-
+
bigint|0s
10
6233
20
-
+
account_id
37378
6233
1
37314
-
+
id
1
37376
@@ -4530,7 +4572,7 @@ false Zulu
1
403
-
+
content
37383
6234
@@ -4540,20 +4582,20 @@ false Zulu
100
pg_catalog
-
+
deleted_at
37384
6235
403
-
+
1
37377
1
6233
37376
-
+
bigint|0s
nextval('passport_account_friendships_id_seq'::regclass)
1
@@ -4562,63 +4604,63 @@ false Zulu
37385
20
-
+
timestamp with time zone|0s
2
6236
1184
-
+
timestamp with time zone|0s
3
6236
1184
-
+
timestamp with time zone|0s
4
6236
1184
-
+
bigint|0s
5
6236
20
-
+
bigint|0s
6
6236
20
-
+
bigint|0s
7
6236
20
-
+
smallint|0s
8
6236
21
-
+
account_id
37392
6236
1
37314
-
+
related_id
37397
6236
1
37314
-
+
id
1
37390
@@ -4627,20 +4669,20 @@ false Zulu
1
403
-
+
deleted_at
37402
6237
403
-
+
1
37391
1
6236
37390
-
+
bigint|0s
nextval('passport_account_pages_id_seq'::regclass)
1
@@ -4649,62 +4691,62 @@ false Zulu
37354
20
-
+
timestamp with time zone|0s
2
6231
1184
-
+
timestamp with time zone|0s
3
6231
1184
-
+
timestamp with time zone|0s
4
6231
1184
-
+
text|0s
5
6231
25
-
+
text|0s
6
6231
25
-
+
text|0s
7
6231
25
-
+
jsonb|0s
8
6231
3802
-
+
bigint|0s
9
6231
20
-
+
account_id
37363
6231
1
37314
-
+
id
1
37361
@@ -4713,20 +4755,20 @@ false Zulu
1
403
-
+
deleted_at
37368
6232
403
-
+
1
37362
1
6231
37361
-
+
bigint|0s
nextval('passport_account_profiles_id_seq'::regclass)
1
@@ -4735,62 +4777,68 @@ false Zulu
37339
20
-
+
timestamp with time zone|0s
2
6229
1184
-
+
timestamp with time zone|0s
3
6229
1184
-
+
timestamp with time zone|0s
4
6229
1184
-
+
text|0s
5
6229
25
-
+
text|0s
6
6229
25
-
+
bigint|0s
7
6229
20
-
+
timestamp with time zone|0s
8
6229
1184
-
+
bigint|0s
9
6229
20
-
+
+ timestamp with time zone|0s
+ 10
+ 9548
+ 1184
+
+
account_id
37348
6229
1
37314
-
+
id
1
37346
@@ -4799,20 +4847,20 @@ false Zulu
1
403
-
+
deleted_at
37353
6230
403
-
+
1
37347
1
6229
37346
-
+
bigint|0s
nextval('passport_accounts_id_seq'::regclass)
1
@@ -4821,61 +4869,73 @@ false Zulu
37313
20
-
+
timestamp with time zone|0s
2
6224
1184
-
+
timestamp with time zone|0s
3
6224
1184
-
+
timestamp with time zone|0s
4
6224
1184
-
+
text|0s
5
6224
25
-
+
text|0s
6
6224
25
-
+
text|0s
7
6224
25
-
+
timestamp with time zone|0s
10
6224
1184
-
+
bigint|0s
11
6224
20
-
+
jsonb|0s
12
7177
3802
-
+
+ bigint|0s
+ 13
+ 7431
+ 20
+
+
+ bigint|0s
+ 14
+ 7432
+ 20
+
+
id
1
37320
@@ -4884,7 +4944,7 @@ false Zulu
1
403
-
+
name
37322
6225
@@ -4894,20 +4954,20 @@ false Zulu
100
pg_catalog
-
+
deleted_at
37323
6226
403
-
+
1
37321
1
6224
37320
-
+
bigint|0s
nextval('passport_action_events_id_seq'::regclass)
1
@@ -4916,68 +4976,68 @@ false Zulu
37474
20
-
+
timestamp with time zone|0s
2
6247
1184
-
+
timestamp with time zone|0s
3
6247
1184
-
+
timestamp with time zone|0s
4
6247
1184
-
+
text|0s
5
6247
25
-
+
text|0s
6
6247
25
-
+
text|0s
7
6247
25
-
+
text|0s
8
6247
25
-
+
text|0s
9
6247
25
-
+
bigint|0s
10
6247
20
-
+
account_id
37483
6247
1
37314
-
+
id
1
37481
@@ -4986,20 +5046,99 @@ false Zulu
1
403
-
+
deleted_at
37488
6248
403
-
+
1
37482
1
6247
37481
-
+
+ bigint|0s
+ nextval('passport_audit_records_id_seq'::regclass)
+ 1
+ 1
+ 10006
+ 47413
+ 20
+
+
+ timestamp with time zone|0s
+ 2
+ 10006
+ 1184
+
+
+ timestamp with time zone|0s
+ 3
+ 10006
+ 1184
+
+
+ timestamp with time zone|0s
+ 4
+ 10006
+ 1184
+
+
+ text|0s
+ 5
+ 10006
+ 25
+
+
+ jsonb|0s
+ 6
+ 10006
+ 3802
+
+
+ text|0s
+ 7
+ 10006
+ 25
+
+
+ text|0s
+ 8
+ 10006
+ 25
+
+
+ bigint|0s
+ 9
+ 10006
+ 20
+
+
+ id
+ 1
+ 47420
+ 1
+ 10006
+ 1
+ 403
+
+
+ deleted_at
+ 47422
+ 10007
+ 403
+
+
+ 1
+ 47421
+ 1
+ 10006
+ 47420
+
+
bigint|0s
nextval('passport_auth_factors_id_seq'::regclass)
1
@@ -5008,56 +5147,56 @@ false Zulu
37324
20
-
+
timestamp with time zone|0s
2
6227
1184
-
+
timestamp with time zone|0s
3
6227
1184
-
+
timestamp with time zone|0s
4
6227
1184
-
+
smallint|0s
5
6227
21
-
+
text|0s
6
6227
25
-
+
jsonb|0s
7
6227
3802
-
+
bigint|0s
8
6227
20
-
+
account_id
37333
6227
1
37314
-
+
id
1
37331
@@ -5066,20 +5205,20 @@ false Zulu
1
403
-
+
deleted_at
37338
6228
403
-
+
1
37332
1
6227
37331
-
+
bigint|0s
nextval('passport_auth_tickets_id_seq'::regclass)
1
@@ -5088,136 +5227,136 @@ false Zulu
37526
20
-
+
timestamp with time zone|0s
2
6259
1184
-
+
timestamp with time zone|0s
3
6259
1184
-
+
timestamp with time zone|0s
4
6259
1184
-
+
text|0s
5
6259
25
-
+
text|0s
6
6259
25
-
+
text|0s
7
6259
25
-
+
boolean|0s
8
6259
16
-
+
boolean|0s
9
6259
16
-
+
jsonb|0s
10
6259
3802
-
+
jsonb|0s
11
6259
3802
-
+
text|0s
12
6259
25
-
+
text|0s
13
6259
25
-
+
text|0s
14
6259
25
-
+
timestamp with time zone|0s
15
6259
1184
-
+
timestamp with time zone|0s
16
6259
1184
-
+
timestamp with time zone|0s
17
6259
1184
-
+
bigint|0s
18
6259
20
-
+
bigint|0s
19
6259
20
-
+
client_id
37540
6259
1
37404
-
+
account_id
37535
6259
1
37314
-
+
account_id
37546
6301
1
37314
-
+
id
1
37533
@@ -5226,20 +5365,106 @@ false Zulu
1
403
-
+
deleted_at
37545
6260
403
-
+
1
37534
1
6259
37533
-
+
+ bigint|0s
+ nextval('passport_badges_id_seq'::regclass)
+ 1
+ 1
+ 8941
+ 47120
+ 20
+
+
+ timestamp with time zone|0s
+ 2
+ 8941
+ 1184
+
+
+ timestamp with time zone|0s
+ 3
+ 8941
+ 1184
+
+
+ timestamp with time zone|0s
+ 4
+ 8941
+ 1184
+
+
+ text|0s
+ 5
+ 8941
+ 25
+
+
+ text|0s
+ 6
+ 8941
+ 25
+
+
+ text|0s
+ 7
+ 8941
+ 25
+
+
+ bigint|0s
+ 8
+ 8941
+ 20
+
+
+ jsonb|0s
+ 9
+ 8945
+ 3802
+
+
+ account_id
+ 47129
+ 8941
+ 1
+ 37314
+
+
+ id
+ 1
+ 47127
+ 1
+ 8941
+ 1
+ 403
+
+
+ deleted_at
+ 47134
+ 8942
+ 403
+
+
+ 1
+ 47128
+ 1
+ 8941
+ 47127
+
+
bigint|0s
nextval('passport_magic_tokens_id_seq'::regclass)
1
@@ -5248,56 +5473,62 @@ false Zulu
37459
20
-
+
timestamp with time zone|0s
2
6245
1184
-
+
timestamp with time zone|0s
3
6245
1184
-
+
timestamp with time zone|0s
4
6245
1184
-
+
text|0s
5
6245
25
-
+
smallint|0s
6
6245
21
-
+
bigint|0s
7
6245
20
-
+
timestamp with time zone|0s
8
6245
1184
-
+
+ bigint|0s
+ 9
+ 9525
+ 20
+
+
assign_to
37468
6245
1
37314
-
+
id
1
37466
@@ -5306,20 +5537,20 @@ false Zulu
1
403
-
+
deleted_at
37473
6246
403
-
+
1
37467
1
6245
37466
-
+
bigint|0s
nextval('passport_notification_subscribers_id_seq'::regclass)
1
@@ -5328,62 +5559,62 @@ false Zulu
37509
20
-
+
timestamp with time zone|0s
2
6251
1184
-
+
timestamp with time zone|0s
3
6251
1184
-
+
timestamp with time zone|0s
4
6251
1184
-
+
text|0s
5
6251
25
-
+
text|0s
6
6251
25
-
+
text|0s
7
6251
25
-
+
bigint|0s
8
6251
20
-
+
text|0s
9
7011
25
-
+
account_id
37518
6251
1
37314
-
+
id
1
37516
@@ -5392,7 +5623,7 @@ false Zulu
1
403
-
+
device_id
37523
6252
@@ -5402,20 +5633,20 @@ false Zulu
100
pg_catalog
-
+
deleted_at
37524
6253
403
-
+
1
37517
1
6251
37516
-
+
bigint|0s
nextval('passport_notifications_id_seq'::regclass)
1
@@ -5424,81 +5655,93 @@ false Zulu
37489
20
-
+
timestamp with time zone|0s
2
6249
1184
-
+
timestamp with time zone|0s
3
6249
1184
-
+
timestamp with time zone|0s
4
6249
1184
-
+
text|0s
5
6249
25
-
+
text|0s
6
6249
25
-
+
jsonb|0s
7
6249
3802
-
+
boolean|0s
8
6249
16
-
+
timestamp with time zone|0s
9
6249
1184
-
+
bigint|0s
10
6249
20
-
+
bigint|0s
11
6249
20
-
+
+ text|0s
+ 12
+ 8943
+ 25
+
+
+ jsonb|0s
+ 13
+ 8944
+ 3802
+
+
sender_id
37498
6249
1
37404
-
+
recipient_id
37503
6249
1
37314
-
+
id
1
37496
@@ -5507,20 +5750,20 @@ false Zulu
1
403
-
+
deleted_at
37508
6250
403
-
+
1
37497
1
6249
37496
-
+
bigint|0s
nextval('passport_realm_members_id_seq'::regclass)
1
@@ -5529,64 +5772,64 @@ false Zulu
37562
20
-
+
timestamp with time zone|0s
2
6430
1184
-
+
timestamp with time zone|0s
3
6430
1184
-
+
timestamp with time zone|0s
4
6430
1184
-
+
bigint|0s
5
6430
20
-
+
bigint|0s
6
6430
20
-
+
bigint|0s
7
6430
20
-
+
realm_id
37574
6430
1
37552
-
+
account_id
38570
7010
1
37314
-
+
account_id
37569
6430
1
37314
-
+
id
1
37567
@@ -5595,20 +5838,20 @@ false Zulu
1
403
-
+
deleted_at
37579
6431
403
-
+
1
37568
1
6430
37567
-
+
bigint|0s
nextval('passport_realms_id_seq'::regclass)
1
@@ -5617,61 +5860,61 @@ false Zulu
37551
20
-
+
timestamp with time zone|0s
2
6427
1184
-
+
timestamp with time zone|0s
3
6427
1184
-
+
timestamp with time zone|0s
4
6427
1184
-
+
text|0s
5
6427
25
-
+
text|0s
6
6427
25
-
+
text|0s
7
6427
25
-
+
boolean|0s
8
6427
16
-
+
boolean|0s
9
6427
16
-
+
bigint|0s
10
6427
20
-
+
id
1
37558
@@ -5680,7 +5923,7 @@ false Zulu
1
403
-
+
alias
37561
6429
@@ -5690,20 +5933,118 @@ false Zulu
100
pg_catalog
-
+
deleted_at
37560
6428
403
-
+
1
37559
1
6427
37558
-
+
+ bigint|0s
+ nextval('passport_statuses_id_seq'::regclass)
+ 1
+ 1
+ 9536
+ 47321
+ 20
+
+
+ timestamp with time zone|0s
+ 2
+ 9536
+ 1184
+
+
+ timestamp with time zone|0s
+ 3
+ 9536
+ 1184
+
+
+ timestamp with time zone|0s
+ 4
+ 9536
+ 1184
+
+
+ text|0s
+ 5
+ 9536
+ 25
+
+
+ text|0s
+ 6
+ 9536
+ 25
+
+
+ smallint|0s
+ 7
+ 9536
+ 21
+
+
+ boolean|0s
+ 8
+ 9536
+ 16
+
+
+ boolean|0s
+ 9
+ 9536
+ 16
+
+
+ bigint|0s
+ 10
+ 9536
+ 20
+
+
+ timestamp with time zone|0s
+ 11
+ 9549
+ 1184
+
+
+ account_id
+ 47330
+ 9536
+ 1
+ 37314
+
+
+ id
+ 1
+ 47328
+ 1
+ 9536
+ 1
+ 403
+
+
+ deleted_at
+ 47335
+ 9537
+ 403
+
+
+ 1
+ 47329
+ 1
+ 9536
+ 47328
+
+
bigint|0s
nextval('passport_third_clients_id_seq'::regclass)
1
@@ -5712,80 +6053,80 @@ false Zulu
37403
20
-
+
timestamp with time zone|0s
2
6238
1184
-
+
timestamp with time zone|0s
3
6238
1184
-
+
timestamp with time zone|0s
4
6238
1184
-
+
text|0s
5
6238
25
-
+
text|0s
6
6238
25
-
+
text|0s
7
6238
25
-
+
text|0s
8
6238
25
-
+
jsonb|0s
9
6238
3802
-
+
jsonb|0s
10
6238
3802
-
+
boolean|0s
11
6238
16
-
+
bigint|0s
12
6238
20
-
+
account_id
37412
6238
1
37314
-
+
id
1
37410
@@ -5794,7 +6135,7 @@ false Zulu
1
403
-
+
alias
37417
6239
@@ -5804,13 +6145,13 @@ false Zulu
100
pg_catalog
-
+
deleted_at
37418
6240
403
-
+
1
37411
1
diff --git a/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25/storage_v2/_src_/database/hy_passport.gNOKQQ/schema/public.abK9xQ.meta b/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25/storage_v2/_src_/database/hy_passport.gNOKQQ/schema/public.abK9xQ.meta
index 6cce267..f65899d 100644
--- a/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25/storage_v2/_src_/database/hy_passport.gNOKQQ/schema/public.abK9xQ.meta
+++ b/.idea/dataSources/74bcf3ef-a2b9-435b-b9e5-f32902a33b25/storage_v2/_src_/database/hy_passport.gNOKQQ/schema/public.abK9xQ.meta
@@ -1,2 +1,2 @@
#n:public
-! [7430, 0, null, null, -2147483648, -2147483648]
+! [10102, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index cc5a133..86113fa 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,17 +4,14 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
@@ -49,41 +46,41 @@
- {
- "keyToString": {
- "DefaultGoTemplateProperty": "Go File",
- "Go Build.Backend.executor": "Run",
- "Go 构建.Backend.executor": "Run",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "RunOnceActivity.go.formatter.settings.were.checked": "true",
- "RunOnceActivity.go.migrated.go.modules.settings": "true",
- "RunOnceActivity.go.modules.automatic.dependencies.download": "true",
- "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
- "git-widget-placeholder": "master",
- "go.import.settings.migrated": "true",
- "go.sdk.automatically.set": "true",
- "last_opened_file_path": "/Users/littlesheep/Documents/Projects/Hydrogen/Passport/web/src/views",
- "node.js.detected.package.eslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "run.code.analysis.last.selected.profile": "pProject Default",
- "settings.editor.selected.configurable": "preferences.pluginManager",
- "ts.external.directory.path": "/Users/littlesheep/Documents/Projects/Hydrogen/Passport/web/node_modules/typescript/lib",
- "vue.rearranger.settings.migration": "true"
+
+}]]>
+
-
@@ -160,8 +157,6 @@
-
-
@@ -185,7 +180,9 @@
-
+
+
+
true
diff --git a/web/src/components/admin/UserAssignPermsPanel.vue b/web/src/components/admin/UserAssignPermsPanel.vue
index ba6181f..1fa84cb 100644
--- a/web/src/components/admin/UserAssignPermsPanel.vue
+++ b/web/src/components/admin/UserAssignPermsPanel.vue
@@ -1,5 +1,5 @@
- !val && emits('close')">
+ !val && emits('close')">
diff --git a/web/src/components/admin/UserDetailPanel.vue b/web/src/components/admin/UserDetailPanel.vue
index 487395f..6dac3a1 100644
--- a/web/src/components/admin/UserDetailPanel.vue
+++ b/web/src/components/admin/UserDetailPanel.vue
@@ -1,5 +1,5 @@
- !val && emits('close')">
+ !val && emits('close')">