Compare commits

...
12 Commits
Author SHA1 Message Date
lejianwen 6d9c245c81 fix(webclient): port 2025-02-16 14:17:37 +08:00
lejianwen 7fa9b79f31 fix(webclient): port 2025-02-16 14:11:36 +08:00
lejianwen c7f3d13b7f fix(webclient): port 2025-02-16 13:33:06 +08:00
lejianwen 46f08a89d2 feat: Login by pwd can be disable
---

Closes: #141
2025-02-16 13:06:45 +08:00
lejianwen 0dcfedb4dc fix(webclient)!: Webclient path is /ws/(relay|id) (#73 #143 #140)
Webclient 的反代引发了很多问题,现在将在HTTPS下的path固定为`/ws/(relay|id)`

---

Closes: #143 #140
2025-02-16 12:41:32 +08:00
lejianwen 918bf85a2d style: middleware name 2025-02-12 22:09:52 +08:00
lejianwen 99db5f7190 fix(admin): Admin web title 2025-02-12 21:10:07 +08:00
lejianwen 18eff791b2 style: Module name 2025-02-12 19:46:39 +08:00
lejianwen 624dcacac5 style: generate 2025-02-12 16:56:41 +08:00
lejianwen 878d5fd27c style: Remove generate 2025-02-12 16:25:04 +08:00
lejianwen 4b893ce0e8 docs: Docs 2025-02-12 16:14:51 +08:00
lejianwen 472524f836 style: Module name 2025-02-12 16:07:51 +08:00
95 changed files with 422 additions and 358 deletions
+14 -14
View File
@@ -1,19 +1,19 @@
package main package main
import ( import (
"Gwen/config"
"Gwen/global"
"Gwen/http"
"Gwen/lib/cache"
"Gwen/lib/jwt"
"Gwen/lib/lock"
"Gwen/lib/logger"
"Gwen/lib/orm"
"Gwen/lib/upload"
"Gwen/model"
"Gwen/service"
"Gwen/utils"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"github.com/lejianwen/rustdesk-api/v2/config"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http"
"github.com/lejianwen/rustdesk-api/v2/lib/cache"
"github.com/lejianwen/rustdesk-api/v2/lib/jwt"
"github.com/lejianwen/rustdesk-api/v2/lib/lock"
"github.com/lejianwen/rustdesk-api/v2/lib/logger"
"github.com/lejianwen/rustdesk-api/v2/lib/orm"
"github.com/lejianwen/rustdesk-api/v2/lib/upload"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"github.com/lejianwen/rustdesk-api/v2/utils"
"github.com/nicksnyder/go-i18n/v2/i18n" "github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"os" "os"
@@ -186,12 +186,12 @@ func DatabaseAutoUpdate() {
// 获取底层的 *sql.DB 对象,并确保在程序退出时关闭连接 // 获取底层的 *sql.DB 对象,并确保在程序退出时关闭连接
sqlDBWithoutDB, err := dbWithoutDB.DB() sqlDBWithoutDB, err := dbWithoutDB.DB()
if err != nil { if err != nil {
global.Logger.Error("获取底层 *sql.DB 对象失败: %v\n", err) global.Logger.Errorf("获取底层 *sql.DB 对象失败: %v", err)
return return
} }
defer func() { defer func() {
if err := sqlDBWithoutDB.Close(); err != nil { if err := sqlDBWithoutDB.Close(); err != nil {
global.Logger.Error("关闭连接失败: %v\n", err) global.Logger.Errorf("关闭连接失败: %v", err)
} }
}() }()
+1 -1
View File
@@ -1 +1 @@
### 👏👏👏 你好 ***{{username}}*** 欢迎使用 [RustDesk Api](https://github.com/lejianwen/rustdesk-api) ### 👏👏👏 你好 ***{{username}}*** 欢迎使用 [RustDesk API](https://github.com/lejianwen/rustdesk-api)
+1
View File
@@ -5,6 +5,7 @@ app:
show-swagger: 0 # 1:启用 0:禁用 show-swagger: 0 # 1:启用 0:禁用
token-expire: 360000 token-expire: 360000
web-sso: true #web auth sso web-sso: true #web auth sso
disable-pwd-login: false #禁用密码登录
admin: admin:
title: "RustDesk Api Admin" title: "RustDesk Api Admin"
hello-file: "./conf/admin/hello.html" #优先使用file hello-file: "./conf/admin/hello.html" #优先使用file
+1
View File
@@ -18,6 +18,7 @@ type App struct {
ShowSwagger int `mapstructure:"show-swagger"` ShowSwagger int `mapstructure:"show-swagger"`
TokenExpire int `mapstructure:"token-expire"` TokenExpire int `mapstructure:"token-expire"`
WebSso bool `mapstructure:"web-sso"` WebSso bool `mapstructure:"web-sso"`
DisablePwdLogin bool `mapstructure:"disable-pwd-login"`
} }
type Admin struct { type Admin struct {
Title string `mapstructure:"title"` Title string `mapstructure:"title"`
+22 -22
View File
@@ -1783,7 +1783,7 @@ const docTemplateadmin = `{
"in": "body", "in": "body",
"required": true, "required": true,
"schema": { "schema": {
"$ref": "#/definitions/Gwen_http_request_admin.Login" "$ref": "#/definitions/github_com_lejianwen_rustdesk-api_http_request_admin.Login"
} }
} }
], ],
@@ -5104,27 +5104,6 @@ const docTemplateadmin = `{
} }
}, },
"definitions": { "definitions": {
"Gwen_http_request_admin.Login": {
"type": "object",
"required": [
"password",
"username"
],
"properties": {
"captcha": {
"type": "string"
},
"password": {
"type": "string"
},
"platform": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"admin.AddressBookForm": { "admin.AddressBookForm": {
"type": "object", "type": "object",
"required": [ "required": [
@@ -5542,6 +5521,27 @@ const docTemplateadmin = `{
} }
} }
}, },
"github_com_lejianwen_rustdesk-api_http_request_admin.Login": {
"type": "object",
"required": [
"password",
"username"
],
"properties": {
"captcha": {
"type": "string"
},
"password": {
"type": "string"
},
"platform": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"model.AddressBook": { "model.AddressBook": {
"type": "object", "type": "object",
"properties": { "properties": {
+22 -22
View File
@@ -1776,7 +1776,7 @@
"in": "body", "in": "body",
"required": true, "required": true,
"schema": { "schema": {
"$ref": "#/definitions/Gwen_http_request_admin.Login" "$ref": "#/definitions/github_com_lejianwen_rustdesk-api_http_request_admin.Login"
} }
} }
], ],
@@ -5097,27 +5097,6 @@
} }
}, },
"definitions": { "definitions": {
"Gwen_http_request_admin.Login": {
"type": "object",
"required": [
"password",
"username"
],
"properties": {
"captcha": {
"type": "string"
},
"password": {
"type": "string"
},
"platform": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"admin.AddressBookForm": { "admin.AddressBookForm": {
"type": "object", "type": "object",
"required": [ "required": [
@@ -5535,6 +5514,27 @@
} }
} }
}, },
"github_com_lejianwen_rustdesk-api_http_request_admin.Login": {
"type": "object",
"required": [
"password",
"username"
],
"properties": {
"captcha": {
"type": "string"
},
"password": {
"type": "string"
},
"platform": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"model.AddressBook": { "model.AddressBook": {
"type": "object", "type": "object",
"properties": { "properties": {
+15 -15
View File
@@ -1,19 +1,5 @@
basePath: /api basePath: /api
definitions: definitions:
Gwen_http_request_admin.Login:
properties:
captcha:
type: string
password:
type: string
platform:
type: string
username:
type: string
required:
- password
- username
type: object
admin.AddressBookForm: admin.AddressBookForm:
properties: properties:
alias: alias:
@@ -292,6 +278,20 @@ definitions:
required: required:
- ids - ids
type: object type: object
github_com_lejianwen_rustdesk-api_http_request_admin.Login:
properties:
captcha:
type: string
password:
type: string
platform:
type: string
username:
type: string
required:
- password
- username
type: object
model.AddressBook: model.AddressBook:
properties: properties:
alias: alias:
@@ -1830,7 +1830,7 @@ paths:
name: body name: body
required: true required: true
schema: schema:
$ref: '#/definitions/Gwen_http_request_admin.Login' $ref: '#/definitions/github_com_lejianwen_rustdesk-api_http_request_admin.Login'
produces: produces:
- application/json - application/json
responses: responses:
+1 -1
View File
@@ -1,4 +1,4 @@
package Gwen package main
//go:generate swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin //go:generate swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin
//go:generate swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api //go:generate swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api
+1 -1
View File
@@ -1,3 +1,3 @@
package Gwen package main
//go:generate go run cmd/apimain.go //go:generate go run cmd/apimain.go
+5 -5
View File
@@ -1,15 +1,15 @@
package global package global
import ( import (
"Gwen/config"
"Gwen/lib/cache"
"Gwen/lib/jwt"
"Gwen/lib/lock"
"Gwen/lib/upload"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
ut "github.com/go-playground/universal-translator" ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"github.com/lejianwen/rustdesk-api/v2/config"
"github.com/lejianwen/rustdesk-api/v2/lib/cache"
"github.com/lejianwen/rustdesk-api/v2/lib/jwt"
"github.com/lejianwen/rustdesk-api/v2/lib/lock"
"github.com/lejianwen/rustdesk-api/v2/lib/upload"
"github.com/nicksnyder/go-i18n/v2/i18n" "github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/spf13/viper" "github.com/spf13/viper"
-1
View File
@@ -15,7 +15,6 @@ func InitI18n() {
fileInfos, err := os.ReadDir(dir) fileInfos, err := os.ReadDir(dir)
if err != nil { if err != nil {
panic(err) panic(err)
return
} }
for _, fileInfo := range fileInfos { for _, fileInfo := range fileInfos {
//如果文件名不是.toml结尾 //如果文件名不是.toml结尾
+1 -1
View File
@@ -1,4 +1,4 @@
module Gwen module github.com/lejianwen/rustdesk-api/v2
go 1.22 go 1.22
+4 -4
View File
@@ -1,13 +1,13 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"encoding/json" "encoding/json"
_ "encoding/json" _ "encoding/json"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
+5 -5
View File
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+9 -3
View File
@@ -1,10 +1,10 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "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/service"
"os" "os"
"strings" "strings"
) )
@@ -61,6 +61,12 @@ func (co *Config) AppConfig(c *gin.Context) {
func (co *Config) AdminConfig(c *gin.Context) { func (co *Config) AdminConfig(c *gin.Context) {
u := service.AllService.UserService.CurUser(c) u := service.AllService.UserService.CurUser(c)
if u == nil || u.Id == 0 {
response.Success(c, &gin.H{
"title": global.Config.Admin.Title,
})
return
}
hello := global.Config.Admin.Hello hello := global.Config.Admin.Hello
helloFile := global.Config.Admin.HelloFile helloFile := global.Config.Admin.HelloFile
if helloFile != "" { if helloFile != "" {
+3 -3
View File
@@ -1,11 +1,11 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/response"
"Gwen/lib/upload"
"fmt" "fmt"
"github.com/gin-gonic/gin" "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/lib/upload"
"os" "os"
"time" "time"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"strconv" "strconv"
) )
+12 -8
View File
@@ -1,16 +1,16 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/controller/api"
"Gwen/http/request/admin"
apiReq "Gwen/http/request/api"
"Gwen/http/response"
adResp "Gwen/http/response/admin"
"Gwen/model"
"Gwen/service"
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/controller/api"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
apiReq "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
adResp "github.com/lejianwen/rustdesk-api/v2/http/response/admin"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"github.com/mojocn/base64Captcha" "github.com/mojocn/base64Captcha"
"sync" "sync"
"time" "time"
@@ -152,6 +152,10 @@ var loginLimiter = NewLoginLimiter(3, 5*time.Minute)
// @Router /admin/login [post] // @Router /admin/login [post]
// @Security token // @Security token
func (ct *Login) Login(c *gin.Context) { func (ct *Login) Login(c *gin.Context) {
if global.Config.App.DisablePwdLogin {
response.Fail(c, 101, response.TranslateMsg(c, "PwdLoginDisabled"))
return
}
f := &admin.Login{} f := &admin.Login{}
err := c.ShouldBindJSON(f) err := c.ShouldBindJSON(f)
clientIp := c.ClientIP() clientIp := c.ClientIP()
+5 -5
View File
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
+4 -4
View File
@@ -1,12 +1,12 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"encoding/json" "encoding/json"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
@@ -1,12 +1,12 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
@@ -1,12 +1,12 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+5 -5
View File
@@ -1,12 +1,12 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+3 -3
View File
@@ -1,10 +1,10 @@
package my package my
import ( import (
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"time" "time"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package my package my
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+5 -5
View File
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
adminReq "Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
adminReq "github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"strconv" "strconv"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
"time" "time"
+5 -5
View File
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
) )
type Rustdesk struct { type Rustdesk struct {
+4 -4
View File
@@ -1,11 +1,11 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
+6 -6
View File
@@ -1,13 +1,13 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
adResp "Gwen/http/response/admin"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
adResp "github.com/lejianwen/rustdesk-api/v2/http/response/admin"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
"strconv" "strconv"
) )
+5 -5
View File
@@ -1,12 +1,12 @@
package admin package admin
import ( import (
"Gwen/global"
"Gwen/http/request/admin"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/admin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+7 -7
View File
@@ -1,16 +1,16 @@
package api package api
import ( import (
"Gwen/global"
requstform "Gwen/http/request/api"
"Gwen/http/response"
"Gwen/http/response/api"
"Gwen/model"
"Gwen/service"
"Gwen/utils"
"encoding/json" "encoding/json"
"errors" "errors"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
requstform "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"github.com/lejianwen/rustdesk-api/v2/utils"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
+4 -4
View File
@@ -1,12 +1,12 @@
package api package api
import ( import (
request "Gwen/http/request/api"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
request "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"time" "time"
) )
+5 -5
View File
@@ -1,12 +1,12 @@
package api package api
import ( import (
apiReq "Gwen/http/request/api"
"Gwen/http/response"
apiResp "Gwen/http/response/api"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
apiReq "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
apiResp "github.com/lejianwen/rustdesk-api/v2/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package api package api
import ( import (
requstform "Gwen/http/request/api"
"Gwen/http/response"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
requstform "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
"os" "os"
"time" "time"
+10 -6
View File
@@ -1,15 +1,15 @@
package api package api
import ( import (
"Gwen/global"
"Gwen/http/request/api"
"Gwen/http/response"
apiResp "Gwen/http/response/api"
"Gwen/model"
"Gwen/service"
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
apiResp "github.com/lejianwen/rustdesk-api/v2/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
) )
@@ -27,6 +27,10 @@ type Login struct {
// @Failure 500 {object} response.ErrorResponse // @Failure 500 {object} response.ErrorResponse
// @Router /login [post] // @Router /login [post]
func (l *Login) Login(c *gin.Context) { func (l *Login) Login(c *gin.Context) {
if global.Config.App.DisablePwdLogin {
response.Error(c, response.TranslateMsg(c, "PwdLoginDisabled"))
return
}
f := &api.LoginForm{} f := &api.LoginForm{}
err := c.ShouldBindJSON(f) err := c.ShouldBindJSON(f)
//fmt.Println(f) //fmt.Println(f)
+6 -6
View File
@@ -1,13 +1,13 @@
package api package api
import ( import (
"Gwen/global"
"Gwen/http/request/api"
"Gwen/http/response"
apiResp "Gwen/http/response/api"
"Gwen/model"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
apiResp "github.com/lejianwen/rustdesk-api/v2/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
) )
+3 -3
View File
@@ -1,11 +1,11 @@
package api package api
import ( import (
requstform "Gwen/http/request/api"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
requstform "github.com/lejianwen/rustdesk-api/v2/http/request/api"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
) )
+2 -2
View File
@@ -1,9 +1,9 @@
package api package api
import ( import (
apiResp "Gwen/http/response/api"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
apiResp "github.com/lejianwen/rustdesk-api/v2/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/service"
"net/http" "net/http"
) )
+4 -4
View File
@@ -1,11 +1,11 @@
package api package api
import ( import (
"Gwen/global"
"Gwen/http/response"
"Gwen/http/response/api"
"Gwen/service"
"github.com/gin-gonic/gin" "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/http/response/api"
"github.com/lejianwen/rustdesk-api/v2/service"
"time" "time"
) )
+1 -1
View File
@@ -1,8 +1,8 @@
package web package web
import ( import (
"Gwen/global"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"strconv" "strconv"
) )
+3 -3
View File
@@ -1,10 +1,10 @@
package http package http
import ( import (
"Gwen/global"
"Gwen/http/middleware"
"Gwen/http/router"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/middleware"
"github.com/lejianwen/rustdesk-api/v2/http/router"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"net/http" "net/http"
"strings" "strings"
+4 -4
View File
@@ -1,13 +1,13 @@
package middleware package middleware
import ( import (
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
) )
// AdminAuth 后台权限验证中间件 // BackendUserAuth 后台权限验证中间件
func AdminAuth() gin.HandlerFunc { func BackendUserAuth() gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
//测试先关闭 //测试先关闭
+2 -2
View File
@@ -1,9 +1,9 @@
package middleware package middleware
import ( import (
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/http/response"
"github.com/lejianwen/rustdesk-api/v2/service"
) )
// AdminPrivilege ... // AdminPrivilege ...
+3 -3
View File
@@ -1,10 +1,10 @@
package middleware package middleware
import ( import (
"Gwen/global"
"Gwen/http/response"
"Gwen/service"
"github.com/gin-gonic/gin" "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/service"
) )
func JwtAuth() gin.HandlerFunc { func JwtAuth() gin.HandlerFunc {
+1 -1
View File
@@ -1,8 +1,8 @@
package middleware package middleware
import ( import (
"Gwen/global"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
+2 -2
View File
@@ -1,9 +1,9 @@
package middleware package middleware
import ( import (
"Gwen/global"
"Gwen/service"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/service"
) )
func RustAuth() gin.HandlerFunc { func RustAuth() gin.HandlerFunc {
+1 -1
View File
@@ -1,8 +1,8 @@
package admin package admin
import ( import (
"Gwen/model"
"encoding/json" "encoding/json"
"github.com/lejianwen/rustdesk-api/v2/model"
) )
type AddressBookForm struct { type AddressBookForm struct {
+1 -1
View File
@@ -1,6 +1,6 @@
package admin package admin
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type GroupForm struct { type GroupForm struct {
Id uint `json:"id"` Id uint `json:"id"`
+1 -1
View File
@@ -1,7 +1,7 @@
package admin package admin
import ( import (
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
) )
type BindOauthForm struct { type BindOauthForm struct {
+1 -1
View File
@@ -1,6 +1,6 @@
package admin package admin
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type PeerForm struct { type PeerForm struct {
RowId uint `json:"row_id" ` RowId uint `json:"row_id" `
+1 -1
View File
@@ -1,6 +1,6 @@
package admin package admin
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type TagForm struct { type TagForm struct {
Id uint `json:"id"` Id uint `json:"id"`
+1 -1
View File
@@ -1,7 +1,7 @@
package admin package admin
import ( import (
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
) )
type UserForm struct { type UserForm struct {
+2 -2
View File
@@ -1,9 +1,9 @@
package api package api
import ( import (
"Gwen/global"
"Gwen/model"
"encoding/json" "encoding/json"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/model"
"strconv" "strconv"
) )
+1 -1
View File
@@ -1,6 +1,6 @@
package api package api
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type AddressBookFormData struct { type AddressBookFormData struct {
Tags []string `json:"tags"` Tags []string `json:"tags"`
+1 -1
View File
@@ -1,6 +1,6 @@
package admin package admin
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type LoginPayload struct { type LoginPayload struct {
Username string `json:"username"` Username string `json:"username"`
+1 -1
View File
@@ -1,6 +1,6 @@
package api package api
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
type AbList struct { type AbList struct {
Peers []*model.AddressBook `json:"peers,omitempty"` Peers []*model.AddressBook `json:"peers,omitempty"`
+1 -1
View File
@@ -1,6 +1,6 @@
package api package api
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
/* /*
GroupPeerPayload GroupPeerPayload
+1 -1
View File
@@ -1,6 +1,6 @@
package api package api
import "Gwen/model" import "github.com/lejianwen/rustdesk-api/v2/model"
/* /*
pub enum UserStatus { pub enum UserStatus {
+1 -1
View File
@@ -1,7 +1,7 @@
package api package api
import ( import (
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"time" "time"
) )
+1 -1
View File
@@ -1,9 +1,9 @@
package response package response
import ( import (
"Gwen/global"
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/nicksnyder/go-i18n/v2/i18n" "github.com/nicksnyder/go-i18n/v2/i18n"
"net/http" "net/http"
) )
+14 -8
View File
@@ -1,12 +1,12 @@
package router package router
import ( import (
_ "Gwen/docs/admin"
"Gwen/global"
"Gwen/http/controller/admin"
"Gwen/http/controller/admin/my"
"Gwen/http/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
_ "github.com/lejianwen/rustdesk-api/v2/docs/admin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/controller/admin"
"github.com/lejianwen/rustdesk-api/v2/http/controller/admin/my"
"github.com/lejianwen/rustdesk-api/v2/http/middleware"
swaggerFiles "github.com/swaggo/files" swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger" ginSwagger "github.com/swaggo/gin-swagger"
) )
@@ -22,7 +22,10 @@ func Init(g *gin.Engine) {
adg := g.Group("/api/admin") adg := g.Group("/api/admin")
LoginBind(adg) LoginBind(adg)
adg.POST("/user/register", (&admin.User{}).Register) adg.POST("/user/register", (&admin.User{}).Register)
adg.Use(middleware.AdminAuth())
ConfigBind(adg)
adg.Use(middleware.BackendUserAuth())
//FileBind(adg) //FileBind(adg)
UserBind(adg) UserBind(adg)
GroupBind(adg) GroupBind(adg)
@@ -35,7 +38,6 @@ func Init(g *gin.Engine) {
AddressBookCollectionBind(adg) AddressBookCollectionBind(adg)
AddressBookCollectionRuleBind(adg) AddressBookCollectionRuleBind(adg)
UserTokenBind(adg) UserTokenBind(adg)
ConfigBind(adg)
//deprecated by ConfigBind //deprecated by ConfigBind
//rs := &admin.Rustdesk{} //rs := &admin.Rustdesk{}
@@ -221,9 +223,13 @@ func UserTokenBind(rg *gin.RouterGroup) {
func ConfigBind(rg *gin.RouterGroup) { func ConfigBind(rg *gin.RouterGroup) {
aR := rg.Group("/config") aR := rg.Group("/config")
rs := &admin.Config{} rs := &admin.Config{}
aR.GET("/admin", rs.AdminConfig)
aR.Use(middleware.BackendUserAuth())
aR.GET("/server", rs.ServerConfig) aR.GET("/server", rs.ServerConfig)
aR.GET("/app", rs.AppConfig) aR.GET("/app", rs.AppConfig)
aR.GET("/admin", rs.AdminConfig)
} }
/* /*
+4 -4
View File
@@ -1,11 +1,11 @@
package router package router
import ( import (
_ "Gwen/docs/api"
"Gwen/global"
"Gwen/http/controller/api"
"Gwen/http/middleware"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
_ "github.com/lejianwen/rustdesk-api/v2/docs/api"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/controller/api"
"github.com/lejianwen/rustdesk-api/v2/http/middleware"
swaggerFiles "github.com/swaggo/files" swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger" ginSwagger "github.com/swaggo/gin-swagger"
"net/http" "net/http"
+2 -2
View File
@@ -1,9 +1,9 @@
package router package router
import ( import (
"Gwen/global"
"Gwen/http/controller/web"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/controller/web"
"net/http" "net/http"
) )
+1 -1
View File
@@ -1,8 +1,8 @@
package orm package orm
import ( import (
"Gwen/global"
"fmt" "fmt"
"github.com/lejianwen/rustdesk-api/v2/global"
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/logger" "gorm.io/gorm/logger"
+1 -1
View File
@@ -1,8 +1,8 @@
package orm package orm
import ( import (
"Gwen/global"
"fmt" "fmt"
"github.com/lejianwen/rustdesk-api/v2/global"
"gorm.io/driver/sqlite" "gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/logger" "gorm.io/gorm/logger"
+1 -1
View File
@@ -1,6 +1,6 @@
package model package model
import "Gwen/model/custom_types" import "github.com/lejianwen/rustdesk-api/v2/model/custom_types"
// final String id; // final String id;
// String hash; // personal ab hash password // String hash; // personal ab hash password
+1 -1
View File
@@ -1,7 +1,7 @@
package model package model
import ( import (
"Gwen/model/custom_types" "github.com/lejianwen/rustdesk-api/v2/model/custom_types"
) )
type StatusCode int type StatusCode int
+5
View File
@@ -133,3 +133,8 @@ other = "Captcha required."
description = "Captcha error." description = "Captcha error."
one = "Captcha error." one = "Captcha error."
other = "Captcha error." other = "Captcha error."
[PwdLoginDisabled]
description = "Password login disabled."
one = "Password login disabled."
other = "Password login disabled."
+5
View File
@@ -142,3 +142,8 @@ other = "Captcha requerido."
description = "Captcha error." description = "Captcha error."
one = "Error de captcha." one = "Error de captcha."
other = "Error de captcha." other = "Error de captcha."
[PwdLoginDisabled]
description = "Password login disabled."
one = "Inicio de sesión con contraseña deshabilitado."
other = "Inicio de sesión con contraseña deshabilitado."
+5
View File
@@ -142,3 +142,8 @@ other = "Captcha requis."
description = "Captcha error." description = "Captcha error."
one = "Erreur de captcha." one = "Erreur de captcha."
other = "Erreur de captcha." other = "Erreur de captcha."
[PwdLoginDisabled]
description = "Password login disabled."
one = "Connexion par mot de passe désactivée."
other = "Connexion par mot de passe désactivée."
+5
View File
@@ -136,3 +136,8 @@ other = "Captcha가 필요합니다."
description = "Captcha error." description = "Captcha error."
one = "Captcha 오류." one = "Captcha 오류."
other = "Captcha 오류." other = "Captcha 오류."
[PwdLoginDisabled]
description = "Password login disabled."
one = "비밀번호 로그인이 비활성화되었습니다."
other = "비밀번호 로그인이 비활성화되었습니다."
+5
View File
@@ -142,3 +142,8 @@ other = "Требуется капча."
description = "Captcha error." description = "Captcha error."
one = "Ошибка капчи." one = "Ошибка капчи."
other = "Ошибка капчи." other = "Ошибка капчи."
[PwdLoginDisabled]
description = "Password login disabled."
one = "Вход по паролю отключен."
other = "Вход по паролю отключен."
+5
View File
@@ -135,3 +135,8 @@ other = "需要验证码。"
description = "Captcha error." description = "Captcha error."
one = "验证码错误。" one = "验证码错误。"
other = "验证码错误。" other = "验证码错误。"
[PwdLoginDisabled]
description = "Password login disabled."
one = "密码登录已禁用。"
other = "密码登录已禁用。"
+5
View File
@@ -135,3 +135,8 @@ other = "需要驗證碼。"
description = "Captcha error." description = "Captcha error."
one = "驗證碼錯誤。" one = "驗證碼錯誤。"
other = "驗證碼錯誤。" other = "驗證碼錯誤。"
[PwdLoginDisabled]
description = "Password login disabled."
one = "密碼登錄已禁用。"
other = "密碼登錄已禁用。"
+15 -7
View File
@@ -11090,15 +11090,23 @@ function R4(u = !1) {
function getUriFromRs(uri, isRelay = false, roffset = 0) { function getUriFromRs(uri, isRelay = false, roffset = 0) {
const p = isHttps() ? "wss://" : "ws://" const p = isHttps() ? "wss://" : "ws://"
const [domain, uriport] = uri.split(":") const [domain, uriport] = uri.split(":")
if (isHttps() && (!uriport)) { if (!isHttps()) {
return p + domain + "/ws/" + (isRelay ? "relay" : "id"); // http 直接走端口
}
if (uriport) { if (uriport) {
const port = parseInt(uriport); const port = parseInt(uriport)
uri = domain + ":" + (port + (isRelay ? roffset || 3 : 2)) return p + domain + ":" + (port + (isRelay ? roffset || 3 : 2))
} else uri += ":" + (defaultIdServerPort + (isRelay ? 3 : 2));
return p + uri
} }
return p + domain + ":" + (defaultIdServerPort + (isRelay ? 3 : 2))
}
// https 分情况
if (!window.location.port) {
// 443
return p + domain + "/ws/" + (isRelay ? "relay" : "id")
}
// 非443
return p + domain + ":" + window.location.port + "/ws/" + (isRelay ? "relay" : "id")
}
function isHttps() { function isHttps() {
return window.location.protocol === "https:" return window.location.protocol === "https:"
+2 -2
View File
@@ -1,10 +1,10 @@
package service package service
import ( import (
"Gwen/global"
"Gwen/model"
"encoding/json" "encoding/json"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
"strings" "strings"
) )
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+3 -3
View File
@@ -9,9 +9,9 @@ import (
"github.com/go-ldap/ldap/v3" "github.com/go-ldap/ldap/v3"
"Gwen/config" "github.com/lejianwen/rustdesk-api/v2/config"
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
) )
var ( var (
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+3 -3
View File
@@ -1,12 +1,12 @@
package service package service
import ( import (
"Gwen/global"
"Gwen/model"
"Gwen/utils"
"context" "context"
"encoding/json" "encoding/json"
"errors" "errors"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/utils"
"golang.org/x/oauth2" "golang.org/x/oauth2"
"golang.org/x/oauth2/github" "golang.org/x/oauth2/github"
// "golang.org/x/oauth2/google" // "golang.org/x/oauth2/google"
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -2
View File
@@ -1,9 +1,9 @@
package service package service
import ( import (
"Gwen/global"
"Gwen/model"
"fmt" "fmt"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/model"
"net" "net"
"time" "time"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package service package service
import ( import (
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -2
View File
@@ -1,8 +1,8 @@
package service package service
import ( import (
"Gwen/global" "github.com/lejianwen/rustdesk-api/v2/global"
"Gwen/model" "github.com/lejianwen/rustdesk-api/v2/model"
"gorm.io/gorm" "gorm.io/gorm"
) )
+5 -5
View File
@@ -1,10 +1,10 @@
package service package service
import ( import (
"Gwen/global"
"Gwen/model"
"Gwen/utils"
"errors" "errors"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/model"
"github.com/lejianwen/rustdesk-api/v2/utils"
"math/rand" "math/rand"
"strconv" "strconv"
"strings" "strings"
@@ -52,7 +52,7 @@ func (us *UserService) InfoByUsernamePassword(username, password string) *model.
if err == nil { if err == nil {
return u return u
} }
global.Logger.Error("LDAP authentication failed, %v", err) global.Logger.Errorf("LDAP authentication failed, %v", err)
global.Logger.Warn("Fallback to local database") global.Logger.Warn("Fallback to local database")
} }
u := &model.User{} u := &model.User{}
@@ -280,7 +280,7 @@ func (us *UserService) UpdatePassword(u *model.User, password string) error {
// IsAdmin 是否管理员 // IsAdmin 是否管理员
func (us *UserService) IsAdmin(u *model.User) bool { func (us *UserService) IsAdmin(u *model.User) bool {
return *u.IsAdmin return u != nil && *u.IsAdmin
} }
// RouteNames // RouteNames