数据模型使用指针类型字段以避免空值自动更新的问题
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"log/slog"
|
||||
"platform/pkg/u"
|
||||
auth2 "platform/web/auth"
|
||||
client2 "platform/web/domains/client"
|
||||
m "platform/web/models"
|
||||
@@ -328,8 +329,8 @@ func Introspect(c *fiber.Ctx) error {
|
||||
if profile.Phone != "" {
|
||||
profile.Phone = maskPhone(profile.Phone)
|
||||
}
|
||||
if profile.IDNo != "" {
|
||||
profile.IDNo = maskIdNo(profile.IDNo)
|
||||
if profile.IDNo != nil && *profile.IDNo != "" {
|
||||
profile.IDNo = u.P(maskIdNo(*profile.IDNo))
|
||||
}
|
||||
return c.JSON(IntrospectResp{*profile})
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ func CreateChannel(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if user.IDToken == "" {
|
||||
if user.IDToken == nil || *user.IDToken == "" {
|
||||
return fiber.NewError(fiber.StatusForbidden, "账号未实名")
|
||||
}
|
||||
|
||||
@@ -178,8 +178,8 @@ func CreateChannel(c *fiber.Ctx) error {
|
||||
Port: channel.ProxyPort,
|
||||
}
|
||||
if req.AuthType == s.ChannelAuthTypePass {
|
||||
resp[i].Username = &channel.Username
|
||||
resp[i].Password = &channel.Password
|
||||
resp[i].Username = channel.Username
|
||||
resp[i].Password = channel.Password
|
||||
}
|
||||
}
|
||||
return c.JSON(resp)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"platform/pkg/u"
|
||||
"platform/web/auth"
|
||||
edge2 "platform/web/domains/edge"
|
||||
proxy2 "platform/web/domains/proxy"
|
||||
@@ -57,7 +58,7 @@ func OnlineEdge(c *fiber.Ctx) (err error) {
|
||||
Isp: int32(req.ISP),
|
||||
Prov: req.Prov,
|
||||
City: req.City,
|
||||
ProxyID: fwd.ID,
|
||||
ProxyID: &fwd.ID,
|
||||
Type: int32(edge2.TypeSelfHosted),
|
||||
Status: 1,
|
||||
}
|
||||
@@ -138,7 +139,7 @@ func AllEdgesAvailable(c *fiber.Ctx) (err error) {
|
||||
for i, info := range infos {
|
||||
edges[i] = AllEdgesAvailableRespItem{
|
||||
Ip: info.Host,
|
||||
Port: info.ProxyPort,
|
||||
Port: u.Z(info.ProxyPort),
|
||||
Isp: edge2.ISPToStr(edge2.ISP(info.Isp)),
|
||||
Prov: info.Prov,
|
||||
City: info.City,
|
||||
|
||||
@@ -47,7 +47,7 @@ func Identify(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if user.IDToken != "" {
|
||||
if user.IDToken != nil && *user.IDToken != "" {
|
||||
// 用户已实名认证
|
||||
return c.JSON(IdentifyRes{
|
||||
Identified: true,
|
||||
@@ -170,9 +170,9 @@ func IdentifyCallback(c *fiber.Ctx) error {
|
||||
).
|
||||
Updates(m.User{
|
||||
IDType: info.Type,
|
||||
IDNo: info.IdNo,
|
||||
IDToken: info.Token,
|
||||
Name: info.Name,
|
||||
IDNo: &info.IdNo,
|
||||
IDToken: &info.Token,
|
||||
Name: &info.Name,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"log/slog"
|
||||
"platform/pkg/u"
|
||||
auth2 "platform/web/auth"
|
||||
"platform/web/core"
|
||||
proxy2 "platform/web/domains/proxy"
|
||||
g "platform/web/globals"
|
||||
"platform/web/globals/orm"
|
||||
@@ -65,7 +66,7 @@ func OnlineProxy(c *fiber.Ctx) (err error) {
|
||||
Version: int32(req.Version),
|
||||
Type: int32(proxy2.TypeSelfHosted),
|
||||
Host: ip.String(),
|
||||
Secret: secret,
|
||||
Secret: &secret,
|
||||
Status: 1,
|
||||
}
|
||||
err = q.Proxy.
|
||||
@@ -90,12 +91,15 @@ func OnlineProxy(c *fiber.Ctx) (err error) {
|
||||
|
||||
var permits []ProxyPermit
|
||||
for _, channel := range channels {
|
||||
if channel.EdgeID == nil {
|
||||
return core.NewBizErr("通道未分配边缘节点")
|
||||
}
|
||||
permit := ProxyPermit{
|
||||
Id: channel.EdgeID,
|
||||
Id: *channel.EdgeID,
|
||||
Expire: time.Time(channel.Expiration),
|
||||
Whitelists: u.P(strings.Split(channel.Whitelists, ",")),
|
||||
Username: &channel.Username,
|
||||
Password: &channel.Password,
|
||||
Whitelists: u.P(strings.Split(u.Z(channel.Whitelists), ",")),
|
||||
Username: channel.Username,
|
||||
Password: channel.Password,
|
||||
}
|
||||
permits = append(permits, permit)
|
||||
}
|
||||
|
||||
@@ -39,10 +39,10 @@ func UpdateUser(c *fiber.Ctx) error {
|
||||
_, err = q.User.
|
||||
Where(q.User.ID.Eq(authCtx.Payload.Id)).
|
||||
Updates(m.User{
|
||||
Username: req.Username,
|
||||
Email: req.Email,
|
||||
ContactQQ: req.ContactQQ,
|
||||
ContactWechat: req.ContactWechat,
|
||||
Username: &req.Username,
|
||||
Email: &req.Email,
|
||||
ContactQQ: &req.ContactQQ,
|
||||
ContactWechat: &req.ContactWechat,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -78,8 +78,8 @@ func UpdateAccount(c *fiber.Ctx) error {
|
||||
_, err = q.User.
|
||||
Where(q.User.ID.Eq(authCtx.Payload.Id)).
|
||||
Updates(m.User{
|
||||
Username: req.Username,
|
||||
Password: req.Password,
|
||||
Username: &req.Username,
|
||||
Password: &req.Password,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -98,7 +98,7 @@ func CreateWhitelist(c *fiber.Ctx) error {
|
||||
err = q.Whitelist.Create(&m.Whitelist{
|
||||
UserID: authContext.Payload.Id,
|
||||
Host: req.Host,
|
||||
Remark: req.Remark,
|
||||
Remark: &req.Remark,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@@ -134,7 +134,7 @@ func UpdateWhitelist(c *fiber.Ctx) error {
|
||||
Updates(&m.Whitelist{
|
||||
ID: req.ID,
|
||||
Host: req.Host,
|
||||
Remark: req.Remark,
|
||||
Remark: &req.Remark,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user