Translate Chinese comments, log/error messages, validator labels and Swagger annotations to English throughout the source code, generated Swagger docs, config files and CI workflows. Make the English README primary: README.md now holds the English docs and README_EN.md holds the Chinese version, with cross-language links updated accordingly. Note: the generated docs/ swagger files were translated in place; run `go generate ./...` (swag init) to regenerate them from the now-English annotations when a Go toolchain is available. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
98 lines
2.4 KiB
Go
98 lines
2.4 KiB
Go
package admin
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/lejianwen/rustdesk-api/v2/global"
|
|
"github.com/lejianwen/rustdesk-api/v2/http/response"
|
|
"github.com/lejianwen/rustdesk-api/v2/model"
|
|
"github.com/lejianwen/rustdesk-api/v2/service"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type Config struct {
|
|
}
|
|
|
|
// ServerConfig RUSTDESKservice config
|
|
// @Tags ADMIN
|
|
// @Summary RUSTDESKservice config
|
|
// @Description service config, provides an api-server for the webclient
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response
|
|
// @Failure 500 {object} response.Response
|
|
// @Router /admin/config/server [get]
|
|
// @Security token
|
|
func (co *Config) ServerConfig(c *gin.Context) {
|
|
cf := &response.ServerConfigResponse{
|
|
IdServer: global.Config.Rustdesk.IdServer,
|
|
Key: global.Config.Rustdesk.Key,
|
|
RelayServer: global.Config.Rustdesk.RelayServer,
|
|
ApiServer: global.Config.Rustdesk.ApiServer,
|
|
}
|
|
response.Success(c, cf)
|
|
}
|
|
|
|
// AppConfig APPservice config
|
|
// @Tags ADMIN
|
|
// @Summary APPservice config
|
|
// @Description APPservice config
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response
|
|
// @Failure 500 {object} response.Response
|
|
// @Router /admin/config/app [get]
|
|
// @Security token
|
|
func (co *Config) AppConfig(c *gin.Context) {
|
|
response.Success(c, &gin.H{
|
|
"web_client": global.Config.App.WebClient,
|
|
})
|
|
}
|
|
|
|
// AdminConfig ADMINservice config
|
|
// @Tags ADMIN
|
|
// @Summary ADMINservice config
|
|
// @Description ADMINservice config
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Response
|
|
// @Failure 500 {object} response.Response
|
|
// @Router /admin/config/admin [get]
|
|
// @Security token
|
|
func (co *Config) AdminConfig(c *gin.Context) {
|
|
|
|
u := &model.User{}
|
|
token := c.GetHeader("api-token")
|
|
if token != "" {
|
|
u, _ = service.AllService.UserService.InfoByAccessToken(token)
|
|
if !service.AllService.UserService.CheckUserEnable(u) {
|
|
u.Id = 0
|
|
}
|
|
}
|
|
|
|
if u.Id == 0 {
|
|
response.Success(c, &gin.H{
|
|
"title": global.Config.Admin.Title,
|
|
})
|
|
return
|
|
}
|
|
|
|
hello := global.Config.Admin.Hello
|
|
if hello == "" {
|
|
helloFile := global.Config.Admin.HelloFile
|
|
if helloFile != "" {
|
|
b, err := os.ReadFile(helloFile)
|
|
if err == nil && len(b) > 0 {
|
|
hello = string(b)
|
|
}
|
|
}
|
|
}
|
|
|
|
//replace {{username}} to username
|
|
hello = strings.Replace(hello, "{{username}}", u.Username, -1)
|
|
response.Success(c, &gin.H{
|
|
"title": global.Config.Admin.Title,
|
|
"hello": hello,
|
|
})
|
|
}
|