From 57ec428d637ea861681a1c367797ae1380281626 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 12 Mar 2026 09:10:14 +0100 Subject: [PATCH] Add groups to NatsResponse --- controllers/peer.go | 20 ++++++++++---------- go.mod | 2 +- go.sum | 2 ++ infrastructure/nats.go | 5 +++-- routers/router.go | 4 ++-- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/controllers/peer.go b/controllers/peer.go index c640ff6..030c152 100644 --- a/controllers/peer.go +++ b/controllers/peer.go @@ -74,7 +74,7 @@ func (o *PeerController) Get() { // @Success 200 {peer} models.peer // @router /peer/:id/valid [get] func (o *PeerController) Valid() { - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") /*if ok, _ := oclib.IsMySelf(peerID); !ok { o.Data["json"] = map[string]interface{}{ @@ -104,7 +104,7 @@ func (o *PeerController) Valid() { fmt.Println(l.Data, data.Data) if data.Data != nil { b, _ := json.Marshal(data.Data) - go infrastructure.EmitNATS(user, tools.PropalgationMessage{ + go infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ DataType: tools.PEER.EnumIndex(), Action: tools.PB_CREATE, Payload: b, @@ -128,11 +128,11 @@ func (o *PeerController) Valid() { // @Success 200 {peer} models.peer // @router /peer/:id/unknown [post] func (o *PeerController) Unknown() { - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil) data := req.LoadOne(id) - o.changeRelation(data.ToPeer(), user, peer.NONE, req) + o.changeRelation(data.ToPeer(), user, groups, peer.NONE, req) } // @Title Partner @@ -141,11 +141,11 @@ func (o *PeerController) Unknown() { // @Success 200 {peer} models.peer // @router /peer/:id/partner [post] func (o *PeerController) Partner() { - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil) data := req.LoadOne(id) - o.changeRelation(data.ToPeer(), user, peer.PARTNER, req) + o.changeRelation(data.ToPeer(), user, groups, peer.PARTNER, req) } // @Title Blacklist @@ -154,15 +154,15 @@ func (o *PeerController) Partner() { // @Success 200 {peer} models.peer // @router /peer/:id/blacklist [post] func (o *PeerController) Blacklist() { - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil) data := req.LoadOne(id) - o.changeRelation(data.ToPeer(), user, peer.BLACKLIST, req) + o.changeRelation(data.ToPeer(), user, groups, peer.BLACKLIST, req) } // used from : peer ask, or response, only from peer origin is authorized to change... -func (o *PeerController) changeRelation(dest *peer.Peer, user string, relation peer.PeerRelation, request *oclib.Request) { +func (o *PeerController) changeRelation(dest *peer.Peer, user string, groups []string, relation peer.PeerRelation, request *oclib.Request) { /*if ok, _ := oclib.IsMySelf(request.PeerID); !ok { o.Data["json"] = map[string]interface{}{ "data": nil, @@ -201,7 +201,7 @@ func (o *PeerController) changeRelation(dest *peer.Peer, user string, relation p fmt.Println(data.Err, data.Data) if data.Err == "" && data.Data != nil { b, _ := json.Marshal(data.Data) - go infrastructure.EmitNATS(user, tools.PropalgationMessage{ + go infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ DataType: tools.PEER.EnumIndex(), Action: tools.PB_CREATE, Payload: b, diff --git a/go.mod b/go.mod index 3f1b88b..ded99c1 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module oc-peer go 1.25.0 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20260302152414-542b0b73aba5 + cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a github.com/beego/beego/v2 v2.3.8 github.com/smartystreets/goconvey v1.7.2 ) diff --git a/go.sum b/go.sum index 80647a5..df62527 100644 --- a/go.sum +++ b/go.sum @@ -28,6 +28,8 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260302144605-44812309db51 h1:YTZg78dWfigoV cloud.o-forge.io/core/oc-lib v0.0.0-20260302144605-44812309db51/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= cloud.o-forge.io/core/oc-lib v0.0.0-20260302152414-542b0b73aba5 h1:h+Fkyj6cfwAirc0QGCBEkZSSrgcyThXswg7ytOLm948= cloud.o-forge.io/core/oc-lib v0.0.0-20260302152414-542b0b73aba5/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a h1:oCkb9l/Cvn0x6iicxIydrjfCNU+UHhKuklFgfzDa174= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= diff --git a/infrastructure/nats.go b/infrastructure/nats.go index b663eb8..f5fdfc6 100644 --- a/infrastructure/nats.go +++ b/infrastructure/nats.go @@ -17,15 +17,16 @@ var ressourceCols = []oclib.LibDataEnum{ var SearchStream = map[string]chan *peer.Peer{} -func EmitNATS(user string, message tools.PropalgationMessage) { +func EmitNATS(user string, groups []string, message tools.PropalgationMessage) { b, _ := json.Marshal(message) if message.Action == tools.PB_SEARCH { SearchStream[user] = make(chan *peer.Peer, 128) } - fmt.Println("qkjbndkqkjdnqksm") tools.NewNATSCaller().SetNATSPub(tools.PROPALGATION_EVENT, tools.NATSResponse{ FromApp: "oc-peer", Datatype: -1, + User: user, + Groups: groups, Method: int(tools.PROPALGATION_EVENT), Payload: b, }) diff --git a/routers/router.go b/routers/router.go index 788bd28..6e9c61b 100644 --- a/routers/router.go +++ b/routers/router.go @@ -43,9 +43,9 @@ func init() { parts := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/") search := parts[len(parts)-1] - user, _, _ := oclib.ExtractTokenInfo(*r) + user, _, groups := oclib.ExtractTokenInfo(*r) b, _ := json.Marshal(map[string]string{"search": search}) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_SEARCH, DataType: tools.PEER.EnumIndex(), Payload: b,