Export VerifyDeleteChange
This commit is contained in:
parent
d3adb45fae
commit
bb100994ec
@ -7,6 +7,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/anytypeio/any-sync/accountservice"
|
||||
"github.com/anytypeio/any-sync/app/logger"
|
||||
"github.com/anytypeio/any-sync/commonspace/object/keychain"
|
||||
"github.com/anytypeio/any-sync/commonspace/object/tree/objecttree"
|
||||
"github.com/anytypeio/any-sync/commonspace/object/tree/synctree"
|
||||
"github.com/anytypeio/any-sync/commonspace/object/tree/synctree/updatelistener"
|
||||
@ -242,17 +243,7 @@ func (s *settingsObject) verifyDeleteSpace(raw *treechangeproto.RawTreeChangeWit
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
content := &spacesyncproto.SettingsData{}
|
||||
err = proto.Unmarshal(data, content)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if len(content.GetContent()) != 1 ||
|
||||
content.GetContent()[0].GetSpaceDelete() == nil ||
|
||||
content.GetContent()[0].GetSpaceDelete().GetDeleterPeerId() == "" {
|
||||
return fmt.Errorf("incorrect delete change payload")
|
||||
}
|
||||
return
|
||||
return verifyDeleteContent(data, "")
|
||||
}
|
||||
|
||||
func (s *settingsObject) addContent(data []byte) (err error) {
|
||||
@ -271,3 +262,27 @@ func (s *settingsObject) addContent(data []byte) (err error) {
|
||||
s.Update(s)
|
||||
return
|
||||
}
|
||||
|
||||
func VerifyDeleteChange(raw *treechangeproto.RawTreeChangeWithId, peerId string) (err error) {
|
||||
changeBuilder := objecttree.NewChangeBuilder(keychain.NewKeychain(), nil)
|
||||
res, err := changeBuilder.Unmarshall(raw, true)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return verifyDeleteContent(res.Data, peerId)
|
||||
}
|
||||
|
||||
func verifyDeleteContent(data []byte, peerId string) (err error) {
|
||||
content := &spacesyncproto.SettingsData{}
|
||||
err = proto.Unmarshal(data, content)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if len(content.GetContent()) != 1 ||
|
||||
content.GetContent()[0].GetSpaceDelete() == nil ||
|
||||
(peerId == "" && content.GetContent()[0].GetSpaceDelete().GetDeleterPeerId() == "") ||
|
||||
(peerId != "" && content.GetContent()[0].GetSpaceDelete().GetDeleterPeerId() != peerId) {
|
||||
return fmt.Errorf("incorrect delete change payload")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user