Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6f2f2f150 | ||
|
|
56b9c66cb8 | ||
|
|
5d8a0d0e1f | ||
|
|
f4cb9beda5 | ||
|
|
b66fc3c06d | ||
|
|
ab2e1a9236 | ||
|
|
ab77b400a1 | ||
|
|
eb7ab63563 | ||
|
|
4cf7d01622 |
9
.github/workflows/build.yml
vendored
9
.github/workflows/build.yml
vendored
@@ -84,6 +84,15 @@ jobs:
|
||||
- name: tidy
|
||||
run: go mod tidy
|
||||
|
||||
- name: Get tag version
|
||||
run: |
|
||||
TAG_VERSION="${GITHUB_REF##*/}"
|
||||
VERSION="${TAG_VERSION#v}"
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Write version to resources/version
|
||||
run: echo $VERSION > resources/version
|
||||
|
||||
- name: swag
|
||||
run: |
|
||||
go install github.com/swaggo/swag/cmd/swag@latest
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,13 +1,8 @@
|
||||
.idea
|
||||
runtime/*
|
||||
!runtime
|
||||
!runtime/cache
|
||||
!runtime/cache/.gitkeep
|
||||
go.sum
|
||||
resources/*
|
||||
!resources/public/upload/.gitignore
|
||||
!resources/web
|
||||
!resources/web2
|
||||
!resources/i18n
|
||||
resources/admin
|
||||
release
|
||||
data
|
||||
45
README.md
45
README.md
@@ -49,21 +49,22 @@
|
||||
### API 服务
|
||||
基本实现了PC端基础的接口。支持Personal版本接口,可以通过配置文件`rustdesk.personal`或环境变量`RUSTDESK_API_RUSTDESK_PERSONAL`来控制是否启用
|
||||
|
||||
#### 登录
|
||||
|
||||
- 添加了`github`, `google` 以及`OIDC`授权登录,需要在后台配置好就可以用了,具体可看后台OAuth配置
|
||||
- 添加了web后台授权登录,点击后直接登录后台就自动登录客户端了
|
||||
|
||||

|
||||
|
||||
#### 地址簿
|
||||
|
||||

|
||||
|
||||
#### 群组
|
||||
群组分为`共享组`和`普通组`,共享组中所有人都能看到小组成员的设备,普通组只有管理员能看到所有小组成员的设备
|
||||
|
||||

|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%" align="center" colspan="2"><b>登录</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center" colspan="2"><img src="docs/pc_login.png"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center"><b>地址簿</b></td>
|
||||
<td width="50%" align="center"><b>群组</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center"><img src="docs/pc_ab.png"></td>
|
||||
<td width="50%" align="center"><img src="docs/pc_gr.png"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### Web Admin:
|
||||
|
||||
@@ -75,6 +76,7 @@
|
||||

|
||||
2. 普通用户界面
|
||||

|
||||
|
||||
右上角可以更改密码,可以切换语言,可以切换`白天/黑夜`模式
|
||||
|
||||

|
||||
@@ -330,4 +332,15 @@ jwt:
|
||||
- [WIKI](https://github.com/lejianwen/rustdesk-api/wiki)
|
||||
- [链接超时问题](https://github.com/lejianwen/rustdesk-api/issues/92)
|
||||
- [修改客户端ID](https://github.com/abdullah-erturk/RustDesk-ID-Changer)
|
||||
- [webclient来源](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|
||||
- [webclient来源](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|
||||
|
||||
|
||||
## 鸣谢
|
||||
|
||||
感谢所有做过贡献的人!
|
||||
|
||||
<a href="https://github.com/lejianwen/rustdesk-api/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=lejianwen/rustdesk-api" />
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
42
README_EN.md
42
README_EN.md
@@ -47,22 +47,22 @@ desktop software that provides self-hosted solutions.
|
||||
### API Service
|
||||
Basic implementation of the PC client's primary interfaces.Supports the Personal version api, which can be enabled by configuring the `rustdesk.personal` file or the `RUSTDESK_API_RUSTDESK_PERSONAL` environment variable.
|
||||
|
||||
#### Login
|
||||
|
||||
- Added `GitHub`, `Google` and `OIDC` login, which can be used after configuration in the admin panel. See the OAuth
|
||||
configuration section for details.
|
||||
- Added authorization login for the web admin panel.
|
||||
|
||||

|
||||
|
||||
#### Address Book
|
||||
|
||||

|
||||
|
||||
#### Groups
|
||||
Groups are divided into `shared groups` and `regular groups`. In shared groups, everyone can see the peers of all group members, while in regular groups, only administrators can see all members' peers.
|
||||
|
||||

|
||||
<table>
|
||||
<tr>
|
||||
<td width="50%" align="center" colspan="2"><b>Login</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center" colspan="2"><img src="docs/en_img/pc_login.png"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center"><b>Address Book</b></td>
|
||||
<td width="50%" align="center"><b>Groups</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="50%" align="center"><img src="docs/en_img/pc_ab.png"></td>
|
||||
<td width="50%" align="center"><img src="docs/en_img/pc_gr.png"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### Web Admin
|
||||
|
||||
@@ -334,4 +334,12 @@ Download the release from [release](https://github.com/lejianwen/rustdesk-api/re
|
||||
- [WIKI](https://github.com/lejianwen/rustdesk-api/wiki)
|
||||
- [Connection Timeout](https://github.com/lejianwen/rustdesk-api/issues/92)
|
||||
- [Change client ID](https://github.com/abdullah-erturk/RustDesk-ID-Changer)
|
||||
- [Web client source](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|
||||
- [Web client source](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Thanks to everyone who contributed!
|
||||
|
||||
<a href="https://github.com/lejianwen/rustdesk-api/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=lejianwen/rustdesk-api" />
|
||||
</a>
|
||||
|
||||
@@ -39,7 +39,7 @@ var rootCmd = &cobra.Command{
|
||||
InitGlobal()
|
||||
},
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
//gin
|
||||
global.Logger.Info("API SERVER START")
|
||||
http.ApiInit()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ rustdesk:
|
||||
webclient-magic-queryonline: 0
|
||||
logger:
|
||||
path: "./runtime/log.txt"
|
||||
level: "warn" #trace,debug,info,warn,error,fatal
|
||||
level: "info" #trace,debug,info,warn,error,fatal
|
||||
report-caller: true
|
||||
proxy:
|
||||
enable: false
|
||||
|
||||
@@ -981,40 +981,6 @@ const docTemplateadmin = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/app-config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "APP服务配置",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"ADMIN"
|
||||
],
|
||||
"summary": "APP服务配置",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/audit_conn/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -1881,7 +1847,7 @@ const docTemplateadmin = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/delete": {
|
||||
"/admin/login_log/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
@@ -1926,6 +1892,51 @@ const docTemplateadmin = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/delete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"登录日志"
|
||||
],
|
||||
"summary": "登录日志删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志信息",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/model.LoginLog"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/detail/{id}": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -2757,6 +2768,162 @@ const docTemplateadmin = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志批量删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志批量删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/admin.LoginLogIds"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/delete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志信息",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/model.LoginLog"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/list": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志列表",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志列表",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "页码",
|
||||
"name": "page",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "页大小",
|
||||
"name": "page_size",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "用户ID",
|
||||
"name": "user_id",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/response.Response"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"$ref": "#/definitions/model.LoginLogList"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/peer/list": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -3884,40 +4051,6 @@ const docTemplateadmin = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/server-config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "服务配置,给webclient提供api-server",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"ADMIN"
|
||||
],
|
||||
"summary": "RUSTDESK服务配置",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/share_record/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -5768,6 +5901,9 @@ const docTemplateadmin = `{
|
||||
"ip": {
|
||||
"type": "string"
|
||||
},
|
||||
"is_deleted": {
|
||||
"type": "integer"
|
||||
},
|
||||
"platform": {
|
||||
"description": "windows,linux,mac,android,ios",
|
||||
"type": "string"
|
||||
|
||||
@@ -974,40 +974,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/app-config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "APP服务配置",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"ADMIN"
|
||||
],
|
||||
"summary": "APP服务配置",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/audit_conn/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -1874,7 +1840,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/delete": {
|
||||
"/admin/login_log/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
@@ -1919,6 +1885,51 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/delete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"登录日志"
|
||||
],
|
||||
"summary": "登录日志删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志信息",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/model.LoginLog"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/login_log/detail/{id}": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -2750,6 +2761,162 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志批量删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志批量删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/admin.LoginLogIds"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/delete": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志删除",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志删除",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "登录日志信息",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/model.LoginLog"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/login_log/list": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "登录日志列表",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"我的登录日志"
|
||||
],
|
||||
"summary": "登录日志列表",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "页码",
|
||||
"name": "page",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "页大小",
|
||||
"name": "page_size",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "用户ID",
|
||||
"name": "user_id",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/response.Response"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"$ref": "#/definitions/model.LoginLogList"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/my/peer/list": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -3877,40 +4044,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/server-config": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "服务配置,给webclient提供api-server",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"ADMIN"
|
||||
],
|
||||
"summary": "RUSTDESK服务配置",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/admin/share_record/batchDelete": {
|
||||
"post": {
|
||||
"security": [
|
||||
@@ -5761,6 +5894,9 @@
|
||||
"ip": {
|
||||
"type": "string"
|
||||
},
|
||||
"is_deleted": {
|
||||
"type": "integer"
|
||||
},
|
||||
"platform": {
|
||||
"description": "windows,linux,mac,android,ios",
|
||||
"type": "string"
|
||||
|
||||
@@ -531,6 +531,8 @@ definitions:
|
||||
type: integer
|
||||
ip:
|
||||
type: string
|
||||
is_deleted:
|
||||
type: integer
|
||||
platform:
|
||||
description: windows,linux,mac,android,ios
|
||||
type: string
|
||||
@@ -1347,27 +1349,6 @@ paths:
|
||||
summary: 地址簿规则编辑
|
||||
tags:
|
||||
- 地址簿规则
|
||||
/admin/app-config:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: APP服务配置
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: APP服务配置
|
||||
tags:
|
||||
- ADMIN
|
||||
/admin/audit_conn/batchDelete:
|
||||
post:
|
||||
consumes:
|
||||
@@ -1892,7 +1873,7 @@ paths:
|
||||
summary: 登录选项
|
||||
tags:
|
||||
- 登录
|
||||
/admin/login_log/delete:
|
||||
/admin/login_log/batchDelete:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
@@ -1920,6 +1901,34 @@ paths:
|
||||
summary: 登录日志批量删除
|
||||
tags:
|
||||
- 登录日志
|
||||
/admin/login_log/delete:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 登录日志删除
|
||||
parameters:
|
||||
- description: 登录日志信息
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/model.LoginLog'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 登录日志删除
|
||||
tags:
|
||||
- 登录日志
|
||||
/admin/login_log/detail/{id}:
|
||||
get:
|
||||
consumes:
|
||||
@@ -2413,6 +2422,101 @@ paths:
|
||||
summary: 地址簿规则编辑
|
||||
tags:
|
||||
- 我的地址簿规则
|
||||
/admin/my/login_log/batchDelete:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 登录日志批量删除
|
||||
parameters:
|
||||
- description: 登录日志
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/admin.LoginLogIds'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 登录日志批量删除
|
||||
tags:
|
||||
- 我的登录日志
|
||||
/admin/my/login_log/delete:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 登录日志删除
|
||||
parameters:
|
||||
- description: 登录日志信息
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/model.LoginLog'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 登录日志删除
|
||||
tags:
|
||||
- 我的登录日志
|
||||
/admin/my/login_log/list:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 登录日志列表
|
||||
parameters:
|
||||
- description: 页码
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
- description: 页大小
|
||||
in: query
|
||||
name: page_size
|
||||
type: integer
|
||||
- description: 用户ID
|
||||
in: query
|
||||
name: user_id
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/response.Response'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/model.LoginLogList'
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 登录日志列表
|
||||
tags:
|
||||
- 我的登录日志
|
||||
/admin/my/peer/list:
|
||||
get:
|
||||
consumes:
|
||||
@@ -3088,27 +3192,6 @@ paths:
|
||||
summary: 设备编辑
|
||||
tags:
|
||||
- 设备
|
||||
/admin/server-config:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 服务配置,给webclient提供api-server
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: RUSTDESK服务配置
|
||||
tags:
|
||||
- ADMIN
|
||||
/admin/share_record/batchDelete:
|
||||
post:
|
||||
consumes:
|
||||
|
||||
@@ -653,40 +653,6 @@ const docTemplateapi = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "用户信息",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"用户"
|
||||
],
|
||||
"summary": "用户信息",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/api.UserPayload"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/audit/conn": {
|
||||
"post": {
|
||||
"description": "审计连接",
|
||||
@@ -767,6 +733,40 @@ const docTemplateapi = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/currentUser": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "用户信息",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"用户"
|
||||
],
|
||||
"summary": "用户信息",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/api.UserPayload"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/heartbeat": {
|
||||
"post": {
|
||||
"description": "心跳",
|
||||
@@ -1178,43 +1178,6 @@ const docTemplateapi = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/tags": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
],
|
||||
"description": "标签",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"地址"
|
||||
],
|
||||
"summary": "标签",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/model.Tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.ErrorResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/users": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -1289,6 +1252,35 @@ const docTemplateapi = `{
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/version": {
|
||||
"get": {
|
||||
"description": "版本",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"首页"
|
||||
],
|
||||
"summary": "版本",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
|
||||
@@ -646,40 +646,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "用户信息",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"用户"
|
||||
],
|
||||
"summary": "用户信息",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/api.UserPayload"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/audit/conn": {
|
||||
"post": {
|
||||
"description": "审计连接",
|
||||
@@ -760,6 +726,40 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/currentUser": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"token": []
|
||||
}
|
||||
],
|
||||
"description": "用户信息",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"用户"
|
||||
],
|
||||
"summary": "用户信息",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/api.UserPayload"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/heartbeat": {
|
||||
"post": {
|
||||
"description": "心跳",
|
||||
@@ -1171,43 +1171,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/tags": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
],
|
||||
"description": "标签",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"地址"
|
||||
],
|
||||
"summary": "标签",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/model.Tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.ErrorResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/users": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -1282,6 +1245,35 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/version": {
|
||||
"get": {
|
||||
"description": "版本",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"首页"
|
||||
],
|
||||
"summary": "版本",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/response.Response"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
|
||||
@@ -598,27 +598,6 @@ paths:
|
||||
summary: 标签
|
||||
tags:
|
||||
- 地址[Personal]
|
||||
/api:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 用户信息
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.UserPayload'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 用户信息
|
||||
tags:
|
||||
- 用户
|
||||
/audit/conn:
|
||||
post:
|
||||
consumes:
|
||||
@@ -671,6 +650,27 @@ paths:
|
||||
summary: 审计文件
|
||||
tags:
|
||||
- 审计
|
||||
/currentUser:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 用户信息
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/api.UserPayload'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
security:
|
||||
- token: []
|
||||
summary: 用户信息
|
||||
tags:
|
||||
- 用户
|
||||
/heartbeat:
|
||||
post:
|
||||
consumes:
|
||||
@@ -936,29 +936,6 @@ paths:
|
||||
summary: 提交系统信息
|
||||
tags:
|
||||
- 地址
|
||||
/tags:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 标签
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
items:
|
||||
$ref: '#/definitions/model.Tag'
|
||||
type: array
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.ErrorResponse'
|
||||
security:
|
||||
- BearerAuth: []
|
||||
summary: 标签
|
||||
tags:
|
||||
- 地址
|
||||
/users:
|
||||
get:
|
||||
consumes:
|
||||
@@ -1004,6 +981,25 @@ paths:
|
||||
summary: 用户列表
|
||||
tags:
|
||||
- 群组
|
||||
/version:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: 版本
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: '#/definitions/response.Response'
|
||||
summary: 版本
|
||||
tags:
|
||||
- 首页
|
||||
securityDefinitions:
|
||||
BearerAuth:
|
||||
in: header
|
||||
|
||||
@@ -4,18 +4,19 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-playground/locales/en"
|
||||
"github.com/go-playground/locales/es"
|
||||
"github.com/go-playground/locales/fr"
|
||||
"github.com/go-playground/locales/ko"
|
||||
"github.com/go-playground/locales/ru"
|
||||
"github.com/go-playground/locales/fr"
|
||||
"github.com/go-playground/locales/zh_Hans_CN"
|
||||
|
||||
"github.com/go-playground/locales/zh_Hant"
|
||||
ut "github.com/go-playground/universal-translator"
|
||||
"github.com/go-playground/validator/v10"
|
||||
en_translations "github.com/go-playground/validator/v10/translations/en"
|
||||
es_translations "github.com/go-playground/validator/v10/translations/es"
|
||||
fr_translations "github.com/go-playground/validator/v10/translations/fr"
|
||||
ru_translations "github.com/go-playground/validator/v10/translations/ru"
|
||||
zh_translations "github.com/go-playground/validator/v10/translations/zh"
|
||||
fr_translations "github.com/go-playground/validator/v10/translations/fr"
|
||||
zh_tw_translations "github.com/go-playground/validator/v10/translations/zh_tw"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
@@ -29,8 +30,9 @@ func ApiInitValidator() {
|
||||
ruT := ru.New()
|
||||
esT := es.New()
|
||||
frT := fr.New()
|
||||
zhTwT := zh_Hant.New()
|
||||
|
||||
uni := ut.New(enT, cn, koT, ruT, esT, frT)
|
||||
uni := ut.New(enT, cn, koT, ruT, esT, frT, zhTwT)
|
||||
|
||||
enTrans, _ := uni.GetTranslator("en")
|
||||
zhTrans, _ := uni.GetTranslator("zh_Hans_CN")
|
||||
@@ -38,6 +40,7 @@ func ApiInitValidator() {
|
||||
ruTrans, _ := uni.GetTranslator("ru")
|
||||
esTrans, _ := uni.GetTranslator("es")
|
||||
frTrans, _ := uni.GetTranslator("fr")
|
||||
zhTwTrans, _ := uni.GetTranslator("zh_Hant")
|
||||
|
||||
err := zh_translations.RegisterDefaultTranslations(validate, zhTrans)
|
||||
if err != nil {
|
||||
@@ -65,6 +68,10 @@ func ApiInitValidator() {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = zh_tw_translations.RegisterDefaultTranslations(validate, zhTwTrans)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
validate.RegisterTagNameFunc(func(field reflect.StructField) string {
|
||||
label := field.Tag.Get("label")
|
||||
@@ -125,6 +132,13 @@ func getTranslatorForLang(lang string) ut.Translator {
|
||||
case "zh":
|
||||
trans, _ := Validator.UT.GetTranslator("zh_Hans_CN")
|
||||
return trans
|
||||
case "zh_TW":
|
||||
fallthrough
|
||||
case "zh-TW":
|
||||
fallthrough
|
||||
case "zh-tw":
|
||||
trans, _ := Validator.UT.GetTranslator("zh_Hant")
|
||||
return trans
|
||||
case "ko":
|
||||
trans, _ := Validator.UT.GetTranslator("ko")
|
||||
return trans
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"Gwen/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -61,3 +62,25 @@ func (i *Index) Heartbeat(c *gin.Context) {
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{})
|
||||
}
|
||||
|
||||
// Version 版本
|
||||
// @Tags 首页
|
||||
// @Summary 版本
|
||||
// @Description 版本
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} response.Response
|
||||
// @Failure 500 {object} response.Response
|
||||
// @Router /version [get]
|
||||
func (i *Index) Version(c *gin.Context) {
|
||||
//读取resources/version文件
|
||||
v, err := os.ReadFile("resources/version")
|
||||
if err != nil {
|
||||
response.Fail(c, 101, err.Error())
|
||||
return
|
||||
}
|
||||
response.Success(
|
||||
c,
|
||||
string(v),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ type User struct {
|
||||
// @Produce json
|
||||
// @Success 200 {object} apiResp.UserPayload
|
||||
// @Failure 500 {object} response.Response
|
||||
// @Router /api [get]
|
||||
// @Router /currentUser [get]
|
||||
// @Security token
|
||||
func (u *User) Info(c *gin.Context) {
|
||||
user := service.AllService.UserService.CurUser(c)
|
||||
|
||||
@@ -21,10 +21,13 @@ func ApiInit(g *gin.Engine) {
|
||||
|
||||
frg := g.Group("/api")
|
||||
|
||||
i := &api.Index{}
|
||||
frg.GET("/", i.Index)
|
||||
{
|
||||
i := &api.Index{}
|
||||
frg.GET("/", i.Index)
|
||||
frg.GET("/version", i.Version)
|
||||
|
||||
frg.POST("/heartbeat", i.Heartbeat)
|
||||
frg.POST("/heartbeat", i.Heartbeat)
|
||||
}
|
||||
|
||||
{
|
||||
l := &api.Login{}
|
||||
@@ -33,6 +36,7 @@ func ApiInit(g *gin.Engine) {
|
||||
frg.POST("/login", l.Login)
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
o := &api.Oauth{}
|
||||
// [method:POST] [uri:/api/oidc/auth]
|
||||
@@ -52,11 +56,15 @@ func ApiInit(g *gin.Engine) {
|
||||
if global.Config.App.WebClient == 1 {
|
||||
WebClientRoutes(frg)
|
||||
}
|
||||
au := &api.Audit{}
|
||||
//[method:POST] [uri:/api/audit/conn]
|
||||
frg.POST("/audit/conn", au.AuditConn)
|
||||
//[method:POST] [uri:/api/audit/file]
|
||||
frg.POST("/audit/file", au.AuditFile)
|
||||
|
||||
{
|
||||
au := &api.Audit{}
|
||||
//[method:POST] [uri:/api/audit/conn]
|
||||
frg.POST("/audit/conn", au.AuditConn)
|
||||
//[method:POST] [uri:/api/audit/file]
|
||||
frg.POST("/audit/file", au.AuditFile)
|
||||
}
|
||||
|
||||
frg.Use(middleware.RustAuth())
|
||||
{
|
||||
u := &api.User{}
|
||||
|
||||
137
resources/i18n/zh_TW.toml
Normal file
137
resources/i18n/zh_TW.toml
Normal file
@@ -0,0 +1,137 @@
|
||||
[Test]
|
||||
description = "test"
|
||||
one = "測試1 {{.P0}}"
|
||||
other = "測試2 {{.P0}}"
|
||||
|
||||
[ParamsError]
|
||||
description = "Params validation failed."
|
||||
one = "引數錯誤。"
|
||||
other = "引數錯誤。"
|
||||
|
||||
[OperationFailed]
|
||||
description = "OperationFailed."
|
||||
one = "操作失敗。"
|
||||
other = "操作失敗。"
|
||||
|
||||
[OperationSuccess]
|
||||
description = "OperationSuccess."
|
||||
one = "操作成功。"
|
||||
other = "操作成功。"
|
||||
|
||||
[ItemExists]
|
||||
description = "Item already exists."
|
||||
one = "資料已存在。"
|
||||
other = "資料已存在。"
|
||||
|
||||
[ItemNotFound]
|
||||
description = "Item not found."
|
||||
one = "資料不存在。"
|
||||
other = "資料不存在。"
|
||||
|
||||
[NoAccess]
|
||||
description = "No access."
|
||||
one = "無許可權。"
|
||||
other = "無許可權。"
|
||||
|
||||
[UsernameOrPasswordError]
|
||||
description = "Username or password error."
|
||||
one = "使用者名稱或密碼錯誤。"
|
||||
other = "使用者名稱或密碼錯誤。"
|
||||
|
||||
[SystemError]
|
||||
description = "System error."
|
||||
one = "系統錯誤。"
|
||||
other = "系統錯誤。"
|
||||
|
||||
[ConfigNotFound]
|
||||
description = "Config not found."
|
||||
one = "配置不存在。"
|
||||
other = "配置不存在。"
|
||||
|
||||
#授權過期
|
||||
[OauthExpired]
|
||||
description = "Oauth expired."
|
||||
one = "授權過期,請重新授權。"
|
||||
other = "授權過期,請重新授權。"
|
||||
|
||||
[OauthFailed]
|
||||
description = "Oauth failed."
|
||||
one = "授權失敗。"
|
||||
other = "授權失敗。"
|
||||
|
||||
[OauthHasBindOtherUser]
|
||||
description = "Oauth has bind other user."
|
||||
one = "授權已繫結其他使用者。"
|
||||
other = "授權已繫結其他使用者。"
|
||||
|
||||
[ParamIsEmpty]
|
||||
description = "Param is empty."
|
||||
one = "{{.P0}} 為空。"
|
||||
other = "{{.P0}} 為空。"
|
||||
|
||||
[BindFail]
|
||||
description = "Bind fail."
|
||||
one = "繫結失敗。"
|
||||
other = "繫結失敗。"
|
||||
[BindSuccess]
|
||||
description = "Bind success."
|
||||
one = "繫結成功。"
|
||||
other = "繫結成功。"
|
||||
[OauthHasBeenSuccess]
|
||||
description = "Oauth has been success."
|
||||
one = "授權已成功。"
|
||||
other = "授權已成功。"
|
||||
[OauthSuccess]
|
||||
description = "Oauth success."
|
||||
one = "授權成功。"
|
||||
other = "授權成功。"
|
||||
[OauthRegisterSuccess]
|
||||
description = "Oauth register success."
|
||||
one = "授權註冊成功。"
|
||||
other = "授權註冊成功。"
|
||||
[OauthRegisterFailed]
|
||||
description = "Oauth register failed."
|
||||
one = "授權註冊失敗。"
|
||||
other = "授權註冊失敗。"
|
||||
[GetOauthTokenError]
|
||||
description = "Get oauth token error."
|
||||
one = "獲取授權token失敗。"
|
||||
other = "獲取授權token失敗。"
|
||||
[GetOauthUserInfoError]
|
||||
description = "Get oauth user info error."
|
||||
one = "獲取授權使用者資訊失敗。"
|
||||
other = "獲取授權使用者資訊失敗。"
|
||||
[DecodeOauthUserInfoError]
|
||||
description = "Decode oauth user info error."
|
||||
one = "解析授權使用者資訊失敗。"
|
||||
other = "解析授權使用者資訊失敗。"
|
||||
|
||||
[OldPasswordError]
|
||||
description = "Old password error."
|
||||
one = "舊密碼錯誤。"
|
||||
other = "舊密碼錯誤。"
|
||||
|
||||
|
||||
[DefaultGroup]
|
||||
description = "Default group."
|
||||
one = "預設組"
|
||||
other = "預設組"
|
||||
|
||||
[ShareGroup]
|
||||
description = "Share group."
|
||||
one = "共享組"
|
||||
other = "共享組"
|
||||
[RegisterClosed]
|
||||
description = "Register closed."
|
||||
one = "註冊已關閉。"
|
||||
other = "註冊已關閉。"
|
||||
|
||||
[CaptchaRequired]
|
||||
description = "Captcha required."
|
||||
one = "需要驗證碼。"
|
||||
other = "需要驗證碼。"
|
||||
|
||||
[CaptchaError]
|
||||
description = "Captcha error."
|
||||
one = "驗證碼錯誤。"
|
||||
other = "驗證碼錯誤。"
|
||||
1
resources/version
Normal file
1
resources/version
Normal file
@@ -0,0 +1 @@
|
||||
v1.0.0
|
||||
@@ -29,6 +29,7 @@ func (s *TagService) ListByUserId(userId uint) (res *model.TagList) {
|
||||
func (s *TagService) ListByUserIdAndCollectionId(userId, cid uint) (res *model.TagList) {
|
||||
res = s.List(1, 1000, func(tx *gorm.DB) {
|
||||
tx.Where("user_id = ? and collection_id = ?", userId, cid)
|
||||
tx.Order("name asc")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user