mirror of
https://github.com/lejianwen/rustdesk-api.git
synced 2025-12-02 18:13:15 +00:00
add register
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
lang: "zh-CN"
|
||||
app:
|
||||
web-client: 1 # 1:启用 0:禁用
|
||||
register: false #是否开启注册
|
||||
gin:
|
||||
api-addr: "0.0.0.0:21114"
|
||||
mode: "release" #release,debug,test
|
||||
|
||||
@@ -15,7 +15,8 @@ const (
|
||||
)
|
||||
|
||||
type App struct {
|
||||
WebClient int `mapstructure:"web-client"`
|
||||
WebClient int `mapstructure:"web-client"`
|
||||
Register bool `mapstructure:"register"`
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
|
||||
@@ -103,7 +103,10 @@ func (ct *Login) LoginOptions(c *gin.Context) {
|
||||
for _, v := range res.Oauths {
|
||||
ops = append(ops, v.Op)
|
||||
}
|
||||
response.Success(c, ops)
|
||||
response.Success(c, gin.H{
|
||||
"ops": ops,
|
||||
"register": global.Config.App.Register,
|
||||
})
|
||||
}
|
||||
|
||||
// OidcAuth
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"Gwen/http/request/admin"
|
||||
"Gwen/http/response"
|
||||
adResp "Gwen/http/response/admin"
|
||||
"Gwen/model"
|
||||
"Gwen/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
@@ -323,3 +324,40 @@ func (ct *User) GroupUsers(c *gin.Context) {
|
||||
}
|
||||
response.Success(c, data)
|
||||
}
|
||||
|
||||
// Register
|
||||
func (ct *User) Register(c *gin.Context) {
|
||||
if !global.Config.App.Register {
|
||||
response.Fail(c, 101, response.TranslateMsg(c, "RegisterClosed"))
|
||||
return
|
||||
}
|
||||
f := &admin.RegisterForm{}
|
||||
if err := c.ShouldBindJSON(f); err != nil {
|
||||
response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
|
||||
return
|
||||
}
|
||||
errList := global.Validator.ValidStruct(c, f)
|
||||
if len(errList) > 0 {
|
||||
response.Fail(c, 101, errList[0])
|
||||
return
|
||||
}
|
||||
u := service.AllService.UserService.Register(f.Username, f.Password)
|
||||
if u == nil || u.Id == 0 {
|
||||
response.Fail(c, 101, response.TranslateMsg(c, "OperationFailed"))
|
||||
return
|
||||
}
|
||||
// 注册成功后自动登录
|
||||
ut := service.AllService.UserService.Login(u, &model.LoginLog{
|
||||
UserId: u.Id,
|
||||
Client: model.LoginLogClientWebAdmin,
|
||||
Uuid: "",
|
||||
Ip: c.ClientIP(),
|
||||
Type: model.LoginLogTypeAccount,
|
||||
})
|
||||
response.Success(c, &adResp.LoginPayload{
|
||||
Token: ut.Token,
|
||||
Username: u.Username,
|
||||
RouteNames: service.AllService.UserService.RouteNames(u),
|
||||
Nickname: u.Nickname,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -59,3 +59,9 @@ type GroupUsersQuery struct {
|
||||
IsMy int `json:"is_my"`
|
||||
UserId uint `json:"user_id"`
|
||||
}
|
||||
|
||||
type RegisterForm struct {
|
||||
Username string `json:"username" validate:"required,gte=4,lte=10"`
|
||||
Password string `json:"password" validate:"required,gte=4,lte=20"`
|
||||
ConfirmPassword string `json:"confirm_password" validate:"required,gte=4,lte=20"`
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ func Init(g *gin.Engine) {
|
||||
|
||||
adg := g.Group("/api/admin")
|
||||
LoginBind(adg)
|
||||
|
||||
adg.POST("/user/register", (&admin.User{}).Register)
|
||||
adg.Use(middleware.AdminAuth())
|
||||
//FileBind(adg)
|
||||
UserBind(adg)
|
||||
|
||||
@@ -12,6 +12,12 @@ type LoginLog struct {
|
||||
TimeModel
|
||||
}
|
||||
|
||||
const (
|
||||
LoginLogClientWebAdmin = "webadmin"
|
||||
LoginLogClientWeb = "webclient"
|
||||
LoginLogClientApp = "app"
|
||||
)
|
||||
|
||||
const (
|
||||
LoginLogTypeAccount = "account"
|
||||
LoginLogTypeOauth = "oauth"
|
||||
|
||||
@@ -119,3 +119,7 @@ other = "Default Group"
|
||||
description = "Share group"
|
||||
one = "Share Group"
|
||||
other = "Share Group"
|
||||
[RegisterClosed]
|
||||
description = "Register closed."
|
||||
one = "Register closed."
|
||||
other = "Register closed."
|
||||
|
||||
@@ -121,3 +121,8 @@ other = "기본 그룹"
|
||||
description = "Share group."
|
||||
one = "공유 그룹"
|
||||
other = "공유 그룹"
|
||||
|
||||
[RegisterClosed]
|
||||
description = "Register closed."
|
||||
one = "가입이 종료되었습니다."
|
||||
other = "가입이 종료되었습니다."
|
||||
@@ -127,3 +127,8 @@ other = "Группа по умолчанию"
|
||||
description = "Share group."
|
||||
one = "Общая группа"
|
||||
other = "Общая группа"
|
||||
|
||||
[RegisterClosed]
|
||||
description = "Register closed."
|
||||
one = "Регистрация закрыта."
|
||||
other = "Регистрация закрыта."
|
||||
@@ -121,3 +121,7 @@ other = "默认组"
|
||||
description = "Share group."
|
||||
one = "共享组"
|
||||
other = "共享组"
|
||||
[RegisterClosed]
|
||||
description = "Register closed."
|
||||
one = "注册已关闭。"
|
||||
other = "注册已关闭。"
|
||||
@@ -323,3 +323,13 @@ func (us *UserService) FindLatestUserIdFromLoginLogByUuid(uuid string) uint {
|
||||
global.DB.Where("uuid = ?", uuid).Order("id desc").First(llog)
|
||||
return llog.UserId
|
||||
}
|
||||
|
||||
func (us *UserService) Register(username string, password string) *model.User {
|
||||
u := &model.User{
|
||||
Username: username,
|
||||
Password: us.EncryptPassword(password),
|
||||
GroupId: 1,
|
||||
}
|
||||
global.DB.Create(u)
|
||||
return u
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user