Add groups to NatsResponse
This commit is contained in:
@@ -74,7 +74,7 @@ func (o *PeerController) Get() {
|
|||||||
// @Success 200 {peer} models.peer
|
// @Success 200 {peer} models.peer
|
||||||
// @router /peer/:id/valid [get]
|
// @router /peer/:id/valid [get]
|
||||||
func (o *PeerController) Valid() {
|
func (o *PeerController) Valid() {
|
||||||
user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
||||||
id := o.Ctx.Input.Param(":id")
|
id := o.Ctx.Input.Param(":id")
|
||||||
/*if ok, _ := oclib.IsMySelf(peerID); !ok {
|
/*if ok, _ := oclib.IsMySelf(peerID); !ok {
|
||||||
o.Data["json"] = map[string]interface{}{
|
o.Data["json"] = map[string]interface{}{
|
||||||
@@ -104,7 +104,7 @@ func (o *PeerController) Valid() {
|
|||||||
fmt.Println(l.Data, data.Data)
|
fmt.Println(l.Data, data.Data)
|
||||||
if data.Data != nil {
|
if data.Data != nil {
|
||||||
b, _ := json.Marshal(data.Data)
|
b, _ := json.Marshal(data.Data)
|
||||||
go infrastructure.EmitNATS(user, tools.PropalgationMessage{
|
go infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{
|
||||||
DataType: tools.PEER.EnumIndex(),
|
DataType: tools.PEER.EnumIndex(),
|
||||||
Action: tools.PB_CREATE,
|
Action: tools.PB_CREATE,
|
||||||
Payload: b,
|
Payload: b,
|
||||||
@@ -128,11 +128,11 @@ func (o *PeerController) Valid() {
|
|||||||
// @Success 200 {peer} models.peer
|
// @Success 200 {peer} models.peer
|
||||||
// @router /peer/:id/unknown [post]
|
// @router /peer/:id/unknown [post]
|
||||||
func (o *PeerController) Unknown() {
|
func (o *PeerController) Unknown() {
|
||||||
user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
||||||
id := o.Ctx.Input.Param(":id")
|
id := o.Ctx.Input.Param(":id")
|
||||||
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
||||||
data := req.LoadOne(id)
|
data := req.LoadOne(id)
|
||||||
o.changeRelation(data.ToPeer(), user, peer.NONE, req)
|
o.changeRelation(data.ToPeer(), user, groups, peer.NONE, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title Partner
|
// @Title Partner
|
||||||
@@ -141,11 +141,11 @@ func (o *PeerController) Unknown() {
|
|||||||
// @Success 200 {peer} models.peer
|
// @Success 200 {peer} models.peer
|
||||||
// @router /peer/:id/partner [post]
|
// @router /peer/:id/partner [post]
|
||||||
func (o *PeerController) Partner() {
|
func (o *PeerController) Partner() {
|
||||||
user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
||||||
id := o.Ctx.Input.Param(":id")
|
id := o.Ctx.Input.Param(":id")
|
||||||
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
||||||
data := req.LoadOne(id)
|
data := req.LoadOne(id)
|
||||||
o.changeRelation(data.ToPeer(), user, peer.PARTNER, req)
|
o.changeRelation(data.ToPeer(), user, groups, peer.PARTNER, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title Blacklist
|
// @Title Blacklist
|
||||||
@@ -154,15 +154,15 @@ func (o *PeerController) Partner() {
|
|||||||
// @Success 200 {peer} models.peer
|
// @Success 200 {peer} models.peer
|
||||||
// @router /peer/:id/blacklist [post]
|
// @router /peer/:id/blacklist [post]
|
||||||
func (o *PeerController) Blacklist() {
|
func (o *PeerController) Blacklist() {
|
||||||
user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
|
||||||
id := o.Ctx.Input.Param(":id")
|
id := o.Ctx.Input.Param(":id")
|
||||||
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
req := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.PEER), nil)
|
||||||
data := req.LoadOne(id)
|
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...
|
// 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 {
|
/*if ok, _ := oclib.IsMySelf(request.PeerID); !ok {
|
||||||
o.Data["json"] = map[string]interface{}{
|
o.Data["json"] = map[string]interface{}{
|
||||||
"data": nil,
|
"data": nil,
|
||||||
@@ -201,7 +201,7 @@ func (o *PeerController) changeRelation(dest *peer.Peer, user string, relation p
|
|||||||
fmt.Println(data.Err, data.Data)
|
fmt.Println(data.Err, data.Data)
|
||||||
if data.Err == "" && data.Data != nil {
|
if data.Err == "" && data.Data != nil {
|
||||||
b, _ := json.Marshal(data.Data)
|
b, _ := json.Marshal(data.Data)
|
||||||
go infrastructure.EmitNATS(user, tools.PropalgationMessage{
|
go infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{
|
||||||
DataType: tools.PEER.EnumIndex(),
|
DataType: tools.PEER.EnumIndex(),
|
||||||
Action: tools.PB_CREATE,
|
Action: tools.PB_CREATE,
|
||||||
Payload: b,
|
Payload: b,
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module oc-peer
|
|||||||
go 1.25.0
|
go 1.25.0
|
||||||
|
|
||||||
require (
|
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/beego/beego/v2 v2.3.8
|
||||||
github.com/smartystreets/goconvey v1.7.2
|
github.com/smartystreets/goconvey v1.7.2
|
||||||
)
|
)
|
||||||
|
|||||||
2
go.sum
2
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-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 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-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/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
|
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=
|
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
|
|||||||
@@ -17,15 +17,16 @@ var ressourceCols = []oclib.LibDataEnum{
|
|||||||
|
|
||||||
var SearchStream = map[string]chan *peer.Peer{}
|
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)
|
b, _ := json.Marshal(message)
|
||||||
if message.Action == tools.PB_SEARCH {
|
if message.Action == tools.PB_SEARCH {
|
||||||
SearchStream[user] = make(chan *peer.Peer, 128)
|
SearchStream[user] = make(chan *peer.Peer, 128)
|
||||||
}
|
}
|
||||||
fmt.Println("qkjbndkqkjdnqksm")
|
|
||||||
tools.NewNATSCaller().SetNATSPub(tools.PROPALGATION_EVENT, tools.NATSResponse{
|
tools.NewNATSCaller().SetNATSPub(tools.PROPALGATION_EVENT, tools.NATSResponse{
|
||||||
FromApp: "oc-peer",
|
FromApp: "oc-peer",
|
||||||
Datatype: -1,
|
Datatype: -1,
|
||||||
|
User: user,
|
||||||
|
Groups: groups,
|
||||||
Method: int(tools.PROPALGATION_EVENT),
|
Method: int(tools.PROPALGATION_EVENT),
|
||||||
Payload: b,
|
Payload: b,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -43,9 +43,9 @@ func init() {
|
|||||||
parts := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/")
|
parts := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/")
|
||||||
search := parts[len(parts)-1]
|
search := parts[len(parts)-1]
|
||||||
|
|
||||||
user, _, _ := oclib.ExtractTokenInfo(*r)
|
user, _, groups := oclib.ExtractTokenInfo(*r)
|
||||||
b, _ := json.Marshal(map[string]string{"search": search})
|
b, _ := json.Marshal(map[string]string{"search": search})
|
||||||
infrastructure.EmitNATS(user, tools.PropalgationMessage{
|
infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{
|
||||||
Action: tools.PB_SEARCH,
|
Action: tools.PB_SEARCH,
|
||||||
DataType: tools.PEER.EnumIndex(),
|
DataType: tools.PEER.EnumIndex(),
|
||||||
Payload: b,
|
Payload: b,
|
||||||
|
|||||||
Reference in New Issue
Block a user