Merge remote-tracking branch 'origin/main' into dev2.7.7

This commit is contained in:
pixelmaxQM
2024-10-18 21:25:27 +08:00
7 changed files with 68 additions and 93 deletions
+1 -1
View File
@@ -319,7 +319,7 @@ func (b *BaseApi) DeleteUser(c *gin.Context) {
}
jwtId := utils.GetUserID(c)
if jwtId == uint(reqId.ID) {
response.FailWithMessage("删除失败, 自杀失败", c)
response.FailWithMessage("删除失败, 无法删除自己。", c)
return
}
err = userService.DeleteUser(reqId.ID)
-2
View File
@@ -9,7 +9,6 @@ require (
github.com/aws/aws-sdk-go v1.55.5
github.com/casbin/casbin/v2 v2.100.0
github.com/casbin/gorm-adapter/v3 v3.28.0
github.com/flipped-aurora/ws v1.0.2
github.com/fsnotify/fsnotify v1.7.0
github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6
github.com/gin-gonic/gin v1.10.0
@@ -51,7 +50,6 @@ require (
gorm.io/driver/sqlserver v1.5.3
gorm.io/gen v0.3.26
gorm.io/gorm v1.25.12
nhooyr.io/websocket v1.8.17
)
require (
-84
View File
@@ -1,84 +0,0 @@
package ws
import (
"github.com/flipped-aurora/ws/core/biz"
"github.com/flipped-aurora/ws/core/data"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
"nhooyr.io/websocket"
)
type wsPlugin struct {
logger *zap.Logger // 日志输出对象
manageBuf int64 // buffer
registeredMsgHandler map[int32]func(biz.IMessage) bool // 消息处理
checkMap map[string]biz.CheckFunc // 用户校验
admin biz.IManage
adminCase *biz.AdminCase
}
func DefaultRegisteredMsgHandler(admin biz.IManage, logger *zap.Logger) map[int32]func(biz.IMessage) bool {
return map[int32]func(msg biz.IMessage) bool{
1: func(msg biz.IMessage) bool {
// w.admin 里面找到注册客户端的方法
client, ok := admin.FindClient(msg.GetTo())
if !ok {
logger.Info("没有找到该用户")
return false
}
return client.SendMes(msg)
},
}
}
func DefaultCheckMap() map[string]biz.CheckFunc {
return map[string]biz.CheckFunc{
"gva_ws": func(c interface{}) (string, bool) {
// 先断言是gin.content
cc, ok := c.(*gin.Context)
if !ok {
return "", false
}
token := cc.Query("jwt")
// 可以携带jwt
if len(token) == 0 {
return "", false
}
// 解析 jwt...
return token, true
},
}
}
func (w *wsPlugin) Register(g *gin.RouterGroup) {
// gva_ws 为身份校验函数
g.GET("/ws", w.adminCase.HandlerWS("gva_ws", &websocket.AcceptOptions{
InsecureSkipVerify: true,
}))
g.POST("/sendMsg", w.adminCase.SendMsg("gva_ws"))
}
func (w *wsPlugin) RouterPath() string {
return "gva_ws"
}
func GenerateWs(logger *zap.Logger, manageBuf int64, checkMap map[string]biz.CheckFunc) *wsPlugin {
m := data.NewManage(manageBuf)
t := data.NewTopic()
h := data.NewHandle()
admin := data.NewAdmin(m, t, h, logger)
for s, checkFunc := range checkMap {
admin.AddCheckFunc(s, checkFunc)
}
registeredMsgHandler := DefaultRegisteredMsgHandler(admin, logger)
for key, handler := range registeredMsgHandler {
admin.RegisteredMsgHandler(key, handler)
}
return &wsPlugin{
logger: logger, manageBuf: manageBuf,
registeredMsgHandler: registeredMsgHandler, checkMap: checkMap, admin: admin, adminCase: biz.NewAdmin(admin),
}
}