mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-08 05:57:03 +09:00
Update verifier logic
This commit is contained in:
parent
ac68d0850b
commit
ae90afb97d
20 changed files with 116 additions and 116 deletions
|
@ -10,6 +10,7 @@ import (
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -58,7 +59,7 @@ func (a *aclObject) AddConsensusRecords(recs []*consensusproto.RawRecordWithId)
|
||||||
if a.store, a.consErr = list.NewInMemoryStorage(a.id, recs); a.consErr != nil {
|
if a.store, a.consErr = list.NewInMemoryStorage(a.id, recs); a.consErr != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if a.AclList, a.consErr = list.BuildAclListWithIdentity(a.aclService.accountService.Account(), a.store, list.NoOpAcceptorVerifier{}); a.consErr != nil {
|
if a.AclList, a.consErr = list.BuildAclListWithIdentity(a.aclService.accountService.Account(), a.store, recordverifier.NewValidateFull()); a.consErr != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/anyproto/any-sync/app"
|
"github.com/anyproto/any-sync/app"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/node/nodeclient"
|
"github.com/anyproto/any-sync/node/nodeclient"
|
||||||
)
|
)
|
||||||
|
@ -59,7 +60,7 @@ func (c *aclJoiningClient) getAcl(ctx context.Context, spaceId string) (l list.A
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return list.BuildAclListWithIdentity(c.keys, storage, list.NoOpAcceptorVerifier{})
|
return list.BuildAclListWithIdentity(c.keys, storage, recordverifier.NewValidateFull())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *aclJoiningClient) CancelJoin(ctx context.Context, spaceId string) (err error) {
|
func (c *aclJoiningClient) CancelJoin(ctx context.Context, spaceId string) (err error) {
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"github.com/anyproto/any-sync/commonspace/acl/aclclient"
|
"github.com/anyproto/any-sync/commonspace/acl/aclclient"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/util/periodicsync"
|
"github.com/anyproto/any-sync/util/periodicsync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -82,7 +83,7 @@ func (a *aclWaiter) loop(ctx context.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
acl, err := list.BuildAclListWithIdentity(a.keys, storage, list.NoOpAcceptorVerifier{})
|
acl, err := list.BuildAclListWithIdentity(a.keys, storage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ func mockDeps() Deps {
|
||||||
return Deps{
|
return Deps{
|
||||||
TreeSyncer: mockTreeSyncer{},
|
TreeSyncer: mockTreeSyncer{},
|
||||||
SyncStatus: syncstatus.NewNoOpSyncStatus(),
|
SyncStatus: syncstatus.NewNoOpSyncStatus(),
|
||||||
recordVerifier: recordverifier.NewAlwaysAccept(),
|
recordVerifier: recordverifier.NewValidateFull(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/util/cidutil"
|
"github.com/anyproto/any-sync/util/cidutil"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
|
@ -105,11 +106,11 @@ type aclRecordBuilder struct {
|
||||||
id string
|
id string
|
||||||
keyStorage crypto.KeyStorage
|
keyStorage crypto.KeyStorage
|
||||||
accountKeys *accountdata.AccountKeys
|
accountKeys *accountdata.AccountKeys
|
||||||
verifier AcceptorVerifier
|
verifier recordverifier.AcceptorVerifier
|
||||||
state *AclState
|
state *AclState
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAclRecordBuilder(id string, keyStorage crypto.KeyStorage, keys *accountdata.AccountKeys, verifier AcceptorVerifier) AclRecordBuilder {
|
func NewAclRecordBuilder(id string, keyStorage crypto.KeyStorage, keys *accountdata.AccountKeys, verifier recordverifier.AcceptorVerifier) AclRecordBuilder {
|
||||||
return &aclRecordBuilder{
|
return &aclRecordBuilder{
|
||||||
id: id,
|
id: id,
|
||||||
keyStorage: keyStorage,
|
keyStorage: keyStorage,
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/app/logger"
|
"github.com/anyproto/any-sync/app/logger"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -87,7 +88,7 @@ type AclState struct {
|
||||||
func newAclStateWithKeys(
|
func newAclStateWithKeys(
|
||||||
rootRecord *AclRecord,
|
rootRecord *AclRecord,
|
||||||
key crypto.PrivKey,
|
key crypto.PrivKey,
|
||||||
verifier AcceptorVerifier) (st *AclState, err error) {
|
verifier recordverifier.AcceptorVerifier) (st *AclState, err error) {
|
||||||
st = &AclState{
|
st = &AclState{
|
||||||
id: rootRecord.Id,
|
id: rootRecord.Id,
|
||||||
key: key,
|
key: key,
|
||||||
|
@ -107,7 +108,7 @@ func newAclStateWithKeys(
|
||||||
return st, nil
|
return st, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newAclState(rootRecord *AclRecord, verifier AcceptorVerifier) (st *AclState, err error) {
|
func newAclState(rootRecord *AclRecord, verifier recordverifier.AcceptorVerifier) (st *AclState, err error) {
|
||||||
st = &AclState{
|
st = &AclState{
|
||||||
id: rootRecord.Id,
|
id: rootRecord.Id,
|
||||||
keys: make(map[string]AclKeys),
|
keys: make(map[string]AclKeys),
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
)
|
)
|
||||||
|
@ -86,7 +87,7 @@ func (a *AclTestExecutor) buildBatchRequest(args []string, acl AclList, getPerm
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
||||||
accountAcl, err := BuildAclListWithIdentity(keys, ownerAcl.storage, NoOpAcceptorVerifier{})
|
accountAcl, err := BuildAclListWithIdentity(keys, ownerAcl.storage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -273,7 +274,7 @@ func (a *AclTestExecutor) Execute(cmd string) (err error) {
|
||||||
} else {
|
} else {
|
||||||
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
||||||
copyStorage := ownerAcl.storage.(*inMemoryStorage).Copy()
|
copyStorage := ownerAcl.storage.(*inMemoryStorage).Copy()
|
||||||
accountAcl, err := BuildAclListWithIdentity(keys, copyStorage, NoOpAcceptorVerifier{})
|
accountAcl, err := BuildAclListWithIdentity(keys, copyStorage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -291,7 +292,7 @@ func (a *AclTestExecutor) Execute(cmd string) (err error) {
|
||||||
keys := a.actualAccounts[account].Keys
|
keys := a.actualAccounts[account].Keys
|
||||||
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
||||||
copyStorage := ownerAcl.storage.(*inMemoryStorage).Copy()
|
copyStorage := ownerAcl.storage.(*inMemoryStorage).Copy()
|
||||||
accountAcl, err := BuildAclListWithIdentity(keys, copyStorage, NoOpAcceptorVerifier{})
|
accountAcl, err := BuildAclListWithIdentity(keys, copyStorage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -458,7 +459,7 @@ func (a *AclTestExecutor) Execute(cmd string) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
ownerAcl := a.actualAccounts[a.owner].Acl.(*aclList)
|
||||||
accountAcl, err := BuildAclListWithIdentity(keys, ownerAcl.storage, NoOpAcceptorVerifier{})
|
accountAcl, err := BuildAclListWithIdentity(keys, ownerAcl.storage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/util/cidutil"
|
"github.com/anyproto/any-sync/util/cidutil"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
|
@ -26,22 +27,6 @@ type RWLocker interface {
|
||||||
RUnlock()
|
RUnlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
type AcceptorVerifier interface {
|
|
||||||
VerifyAcceptor(rec *consensusproto.RawRecord) (err error)
|
|
||||||
ShouldValidate() bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type NoOpAcceptorVerifier struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (n NoOpAcceptorVerifier) VerifyAcceptor(rec *consensusproto.RawRecord) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (n NoOpAcceptorVerifier) ShouldValidate() bool {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
type AclList interface {
|
type AclList interface {
|
||||||
RWLocker
|
RWLocker
|
||||||
Id() string
|
Id() string
|
||||||
|
@ -80,7 +65,7 @@ type aclList struct {
|
||||||
keyStorage crypto.KeyStorage
|
keyStorage crypto.KeyStorage
|
||||||
aclState *AclState
|
aclState *AclState
|
||||||
storage Storage
|
storage Storage
|
||||||
verifier AcceptorVerifier
|
verifier recordverifier.AcceptorVerifier
|
||||||
|
|
||||||
sync.RWMutex
|
sync.RWMutex
|
||||||
}
|
}
|
||||||
|
@ -90,10 +75,10 @@ type internalDeps struct {
|
||||||
keyStorage crypto.KeyStorage
|
keyStorage crypto.KeyStorage
|
||||||
stateBuilder *aclStateBuilder
|
stateBuilder *aclStateBuilder
|
||||||
recordBuilder AclRecordBuilder
|
recordBuilder AclRecordBuilder
|
||||||
acceptorVerifier AcceptorVerifier
|
acceptorVerifier recordverifier.AcceptorVerifier
|
||||||
}
|
}
|
||||||
|
|
||||||
func BuildAclListWithIdentity(acc *accountdata.AccountKeys, storage Storage, verifier AcceptorVerifier) (AclList, error) {
|
func BuildAclListWithIdentity(acc *accountdata.AccountKeys, storage Storage, verifier recordverifier.AcceptorVerifier) (AclList, error) {
|
||||||
keyStorage := crypto.NewKeyStorage()
|
keyStorage := crypto.NewKeyStorage()
|
||||||
deps := internalDeps{
|
deps := internalDeps{
|
||||||
storage: storage,
|
storage: storage,
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
)
|
)
|
||||||
|
@ -279,7 +280,7 @@ func TestAclList_FixAcceptPanic(t *testing.T) {
|
||||||
fx := newFixture(t)
|
fx := newFixture(t)
|
||||||
fx.inviteAccount(t, AclPermissions(aclrecordproto.AclUserPermissions_Writer))
|
fx.inviteAccount(t, AclPermissions(aclrecordproto.AclUserPermissions_Writer))
|
||||||
|
|
||||||
_, err := BuildAclListWithIdentity(fx.accountKeys, fx.ownerAcl.storage, NoOpAcceptorVerifier{})
|
_, err := BuildAclListWithIdentity(fx.accountKeys, fx.ownerAcl.storage, recordverifier.NewValidateFull())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package list
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
)
|
)
|
||||||
|
@ -17,7 +18,7 @@ func newAclWithStoreProvider(root *consensusproto.RawRecordWithId, keys *account
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return BuildAclListWithIdentity(keys, storage, NoOpAcceptorVerifier{})
|
return BuildAclListWithIdentity(keys, storage, recordverifier.NewValidateFull())
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDerivedAclWithStoreProvider(spaceId string, keys *accountdata.AccountKeys, metadata []byte, storeProvider StorageProvider) (AclList, error) {
|
func newDerivedAclWithStoreProvider(spaceId string, keys *accountdata.AccountKeys, metadata []byte, storeProvider StorageProvider) (AclList, error) {
|
||||||
|
@ -43,11 +44,11 @@ func newInMemoryAclWithRoot(keys *accountdata.AccountKeys, root *consensusproto.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return BuildAclListWithIdentity(keys, st, NoOpAcceptorVerifier{})
|
return BuildAclListWithIdentity(keys, st, recordverifier.NewValidateFull())
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildDerivedRoot(spaceId string, keys *accountdata.AccountKeys, metadata []byte) (root *consensusproto.RawRecordWithId, err error) {
|
func buildDerivedRoot(spaceId string, keys *accountdata.AccountKeys, metadata []byte) (root *consensusproto.RawRecordWithId, err error) {
|
||||||
builder := NewAclRecordBuilder("", crypto.NewKeyStorage(), keys, NoOpAcceptorVerifier{})
|
builder := NewAclRecordBuilder("", crypto.NewKeyStorage(), keys, recordverifier.NewValidateFull())
|
||||||
masterKey, _, err := crypto.GenerateRandomEd25519KeyPair()
|
masterKey, _, err := crypto.GenerateRandomEd25519KeyPair()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -27,10 +28,10 @@ type ContentValidator interface {
|
||||||
type contentValidator struct {
|
type contentValidator struct {
|
||||||
keyStore crypto.KeyStorage
|
keyStore crypto.KeyStorage
|
||||||
aclState *AclState
|
aclState *AclState
|
||||||
verifier AcceptorVerifier
|
verifier recordverifier.AcceptorVerifier
|
||||||
}
|
}
|
||||||
|
|
||||||
func newContentValidator(keyStore crypto.KeyStorage, aclState *AclState, verifier AcceptorVerifier) ContentValidator {
|
func newContentValidator(keyStore crypto.KeyStorage, aclState *AclState, verifier recordverifier.AcceptorVerifier) ContentValidator {
|
||||||
return &contentValidator{
|
return &contentValidator{
|
||||||
keyStore: keyStore,
|
keyStore: keyStore,
|
||||||
aclState: aclState,
|
aclState: aclState,
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
package recordverifier
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/anyproto/any-sync/app"
|
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
|
||||||
)
|
|
||||||
|
|
||||||
type AlwaysAccept struct{}
|
|
||||||
|
|
||||||
func NewAlwaysAccept() RecordVerifier {
|
|
||||||
return &AlwaysAccept{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *AlwaysAccept) Init(_ *app.App) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *AlwaysAccept) Name() string {
|
|
||||||
return CName
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *AlwaysAccept) VerifyAcceptor(_ *consensusproto.RawRecord) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *AlwaysAccept) ShouldValidate() bool {
|
|
||||||
return true
|
|
||||||
}
|
|
|
@ -4,7 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/app"
|
"github.com/anyproto/any-sync/app"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
"github.com/anyproto/any-sync/nodeconf"
|
"github.com/anyproto/any-sync/nodeconf"
|
||||||
"github.com/anyproto/any-sync/util/crypto"
|
"github.com/anyproto/any-sync/util/crypto"
|
||||||
|
@ -12,9 +11,14 @@ import (
|
||||||
|
|
||||||
const CName = "common.acl.recordverifier"
|
const CName = "common.acl.recordverifier"
|
||||||
|
|
||||||
|
type AcceptorVerifier interface {
|
||||||
|
VerifyAcceptor(rec *consensusproto.RawRecord) (err error)
|
||||||
|
ShouldValidate() bool
|
||||||
|
}
|
||||||
|
|
||||||
type RecordVerifier interface {
|
type RecordVerifier interface {
|
||||||
app.Component
|
app.Component
|
||||||
list.AcceptorVerifier
|
AcceptorVerifier
|
||||||
}
|
}
|
||||||
|
|
||||||
func New() RecordVerifier {
|
func New() RecordVerifier {
|
||||||
|
|
28
commonspace/object/acl/recordverifier/validatefull.go
Normal file
28
commonspace/object/acl/recordverifier/validatefull.go
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
package recordverifier
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/anyproto/any-sync/app"
|
||||||
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ValidateFull struct{}
|
||||||
|
|
||||||
|
func NewValidateFull() RecordVerifier {
|
||||||
|
return &ValidateFull{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *ValidateFull) Init(_ *app.App) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *ValidateFull) Name() string {
|
||||||
|
return CName
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *ValidateFull) VerifyAcceptor(_ *consensusproto.RawRecord) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *ValidateFull) ShouldValidate() bool {
|
||||||
|
return true
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ import (
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/keyvalue/keyvaluestorage"
|
"github.com/anyproto/any-sync/commonspace/object/keyvalue/keyvaluestorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/keyvalue/keyvaluestorage/innerstorage"
|
"github.com/anyproto/any-sync/commonspace/object/keyvalue/keyvaluestorage/innerstorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/spacepayloads"
|
"github.com/anyproto/any-sync/commonspace/spacepayloads"
|
||||||
|
@ -280,7 +281,7 @@ func newFixture(t *testing.T, keys *accountdata.AccountKeys, spacePayload spaces
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
aclStorage, err := storage.AclStorage()
|
aclStorage, err := storage.AclStorage()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
aclList, err := list.BuildAclListWithIdentity(keys, aclStorage, list.NoOpAcceptorVerifier{})
|
aclList, err := list.BuildAclListWithIdentity(keys, aclStorage, recordverifier.NewValidateFull())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
storageId := "kv.storage"
|
storageId := "kv.storage"
|
||||||
rpcHandler := rpctest.NewTestServer()
|
rpcHandler := rpctest.NewTestServer()
|
||||||
|
|
|
@ -19,6 +19,7 @@ import (
|
||||||
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
|
"github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
|
||||||
)
|
)
|
||||||
|
@ -390,7 +391,7 @@ func TestObjectTree(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
prevId = rec.Id
|
prevId = rec.Id
|
||||||
}
|
}
|
||||||
beforeAcl, err := list.BuildAclListWithIdentity(account.Keys, beforeStorage, list.NoOpAcceptorVerifier{})
|
beforeAcl, err := list.BuildAclListWithIdentity(account.Keys, beforeStorage, recordverifier.NewValidateFull())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = exec.Execute("a.invite::invId")
|
err = exec.Execute("a.invite::invId")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -462,7 +463,7 @@ func TestObjectTree(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
storage, err := list.NewInMemoryStorage(prevAclRecs[0].Id, prevAclRecs)
|
storage, err := list.NewInMemoryStorage(prevAclRecs[0].Id, prevAclRecs)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
acl, err := list.BuildAclListWithIdentity(bAccount.Keys, storage, list.NoOpAcceptorVerifier{})
|
acl, err := list.BuildAclListWithIdentity(bAccount.Keys, storage, recordverifier.NewValidateFull())
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// creating tree with old storage which doesn't have a new invite record
|
// creating tree with old storage which doesn't have a new invite record
|
||||||
bTree, err := BuildKeyFilterableObjectTree(bStore, acl)
|
bTree, err := BuildKeyFilterableObjectTree(bStore, acl)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||||
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
||||||
|
@ -96,7 +97,7 @@ func StoragePayloadForSpaceCreate(payload SpaceCreatePayload) (storagePayload sp
|
||||||
|
|
||||||
// building acl root
|
// building acl root
|
||||||
keyStorage := crypto.NewKeyStorage()
|
keyStorage := crypto.NewKeyStorage()
|
||||||
aclBuilder := list.NewAclRecordBuilder("", keyStorage, nil, list.NoOpAcceptorVerifier{})
|
aclBuilder := list.NewAclRecordBuilder("", keyStorage, nil, recordverifier.NewValidateFull())
|
||||||
aclRoot, err := aclBuilder.BuildRoot(list.RootContent{
|
aclRoot, err := aclBuilder.BuildRoot(list.RootContent{
|
||||||
PrivKey: payload.SigningKey,
|
PrivKey: payload.SigningKey,
|
||||||
MasterKey: payload.MasterKey,
|
MasterKey: payload.MasterKey,
|
||||||
|
@ -187,7 +188,7 @@ func StoragePayloadForSpaceDerive(payload SpaceDerivePayload) (storagePayload sp
|
||||||
|
|
||||||
// building acl root
|
// building acl root
|
||||||
keyStorage := crypto.NewKeyStorage()
|
keyStorage := crypto.NewKeyStorage()
|
||||||
aclBuilder := list.NewAclRecordBuilder("", keyStorage, nil, list.NoOpAcceptorVerifier{})
|
aclBuilder := list.NewAclRecordBuilder("", keyStorage, nil, recordverifier.NewValidateFull())
|
||||||
aclRoot, err := aclBuilder.BuildRoot(list.RootContent{
|
aclRoot, err := aclBuilder.BuildRoot(list.RootContent{
|
||||||
PrivKey: payload.SigningKey,
|
PrivKey: payload.SigningKey,
|
||||||
MasterKey: payload.MasterKey,
|
MasterKey: payload.MasterKey,
|
||||||
|
|
|
@ -130,7 +130,7 @@ func (r *RpcServer) getSpace(ctx context.Context, spaceId string) (sp Space, err
|
||||||
sp, err = r.spaceService.NewSpace(ctx, spaceId, Deps{
|
sp, err = r.spaceService.NewSpace(ctx, spaceId, Deps{
|
||||||
TreeSyncer: NewTreeSyncer(spaceId),
|
TreeSyncer: NewTreeSyncer(spaceId),
|
||||||
SyncStatus: syncstatus.NewNoOpSyncStatus(),
|
SyncStatus: syncstatus.NewNoOpSyncStatus(),
|
||||||
recordVerifier: recordverifier.NewAlwaysAccept(),
|
recordVerifier: recordverifier.NewValidateFull(),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
"github.com/anyproto/any-sync/commonspace/headsync/headstorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
"github.com/anyproto/any-sync/commonspace/object/accountdata"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/recordverifier"
|
||||||
"github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage"
|
"github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage"
|
||||||
"github.com/anyproto/any-sync/consensus/consensusproto"
|
"github.com/anyproto/any-sync/consensus/consensusproto"
|
||||||
)
|
)
|
||||||
|
@ -31,7 +32,7 @@ func migrateAclList(ctx context.Context, oldStorage oldstorage.ListStorage, head
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("migration: failed to generate keys: %w", err)
|
return nil, fmt.Errorf("migration: failed to generate keys: %w", err)
|
||||||
}
|
}
|
||||||
aclList, err := list.BuildAclListWithIdentity(keys, aclStorage, &list.NoOpAcceptorVerifier{})
|
aclList, err := list.BuildAclListWithIdentity(keys, aclStorage, recordverifier.NewValidateFull())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("migration: failed to build acl list: %w", err)
|
return nil, fmt.Errorf("migration: failed to build acl list: %w", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
//
|
//
|
||||||
// mockgen -destination=mock/mock_paymentserviceclient.go -package=mock_paymentserviceclient github.com/anyproto/any-sync/paymentservice/paymentserviceclient AnyPpClientService
|
// mockgen -destination=mock/mock_paymentserviceclient.go -package=mock_paymentserviceclient github.com/anyproto/any-sync/paymentservice/paymentserviceclient AnyPpClientService
|
||||||
//
|
//
|
||||||
|
|
||||||
// Package mock_paymentserviceclient is a generated GoMock package.
|
// Package mock_paymentserviceclient is a generated GoMock package.
|
||||||
package mock_paymentserviceclient
|
package mock_paymentserviceclient
|
||||||
|
|
||||||
|
@ -22,7 +21,6 @@ import (
|
||||||
type MockAnyPpClientService struct {
|
type MockAnyPpClientService struct {
|
||||||
ctrl *gomock.Controller
|
ctrl *gomock.Controller
|
||||||
recorder *MockAnyPpClientServiceMockRecorder
|
recorder *MockAnyPpClientServiceMockRecorder
|
||||||
isgomock struct{}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MockAnyPpClientServiceMockRecorder is the mock recorder for MockAnyPpClientService.
|
// MockAnyPpClientServiceMockRecorder is the mock recorder for MockAnyPpClientService.
|
||||||
|
@ -43,122 +41,122 @@ func (m *MockAnyPpClientService) EXPECT() *MockAnyPpClientServiceMockRecorder {
|
||||||
}
|
}
|
||||||
|
|
||||||
// BuySubscription mocks base method.
|
// BuySubscription mocks base method.
|
||||||
func (m *MockAnyPpClientService) BuySubscription(ctx context.Context, in *paymentserviceproto.BuySubscriptionRequestSigned) (*paymentserviceproto.BuySubscriptionResponse, error) {
|
func (m *MockAnyPpClientService) BuySubscription(arg0 context.Context, arg1 *paymentserviceproto.BuySubscriptionRequestSigned) (*paymentserviceproto.BuySubscriptionResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "BuySubscription", ctx, in)
|
ret := m.ctrl.Call(m, "BuySubscription", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.BuySubscriptionResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.BuySubscriptionResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// BuySubscription indicates an expected call of BuySubscription.
|
// BuySubscription indicates an expected call of BuySubscription.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) BuySubscription(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) BuySubscription(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuySubscription", reflect.TypeOf((*MockAnyPpClientService)(nil).BuySubscription), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuySubscription", reflect.TypeOf((*MockAnyPpClientService)(nil).BuySubscription), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FinalizeSubscription mocks base method.
|
// FinalizeSubscription mocks base method.
|
||||||
func (m *MockAnyPpClientService) FinalizeSubscription(ctx context.Context, in *paymentserviceproto.FinalizeSubscriptionRequestSigned) (*paymentserviceproto.FinalizeSubscriptionResponse, error) {
|
func (m *MockAnyPpClientService) FinalizeSubscription(arg0 context.Context, arg1 *paymentserviceproto.FinalizeSubscriptionRequestSigned) (*paymentserviceproto.FinalizeSubscriptionResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "FinalizeSubscription", ctx, in)
|
ret := m.ctrl.Call(m, "FinalizeSubscription", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.FinalizeSubscriptionResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.FinalizeSubscriptionResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// FinalizeSubscription indicates an expected call of FinalizeSubscription.
|
// FinalizeSubscription indicates an expected call of FinalizeSubscription.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) FinalizeSubscription(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) FinalizeSubscription(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FinalizeSubscription", reflect.TypeOf((*MockAnyPpClientService)(nil).FinalizeSubscription), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FinalizeSubscription", reflect.TypeOf((*MockAnyPpClientService)(nil).FinalizeSubscription), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAllTiers mocks base method.
|
// GetAllTiers mocks base method.
|
||||||
func (m *MockAnyPpClientService) GetAllTiers(ctx context.Context, in *paymentserviceproto.GetTiersRequestSigned) (*paymentserviceproto.GetTiersResponse, error) {
|
func (m *MockAnyPpClientService) GetAllTiers(arg0 context.Context, arg1 *paymentserviceproto.GetTiersRequestSigned) (*paymentserviceproto.GetTiersResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "GetAllTiers", ctx, in)
|
ret := m.ctrl.Call(m, "GetAllTiers", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.GetTiersResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.GetTiersResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAllTiers indicates an expected call of GetAllTiers.
|
// GetAllTiers indicates an expected call of GetAllTiers.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) GetAllTiers(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) GetAllTiers(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTiers", reflect.TypeOf((*MockAnyPpClientService)(nil).GetAllTiers), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllTiers", reflect.TypeOf((*MockAnyPpClientService)(nil).GetAllTiers), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSubscriptionPortalLink mocks base method.
|
// GetSubscriptionPortalLink mocks base method.
|
||||||
func (m *MockAnyPpClientService) GetSubscriptionPortalLink(ctx context.Context, in *paymentserviceproto.GetSubscriptionPortalLinkRequestSigned) (*paymentserviceproto.GetSubscriptionPortalLinkResponse, error) {
|
func (m *MockAnyPpClientService) GetSubscriptionPortalLink(arg0 context.Context, arg1 *paymentserviceproto.GetSubscriptionPortalLinkRequestSigned) (*paymentserviceproto.GetSubscriptionPortalLinkResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "GetSubscriptionPortalLink", ctx, in)
|
ret := m.ctrl.Call(m, "GetSubscriptionPortalLink", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.GetSubscriptionPortalLinkResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.GetSubscriptionPortalLinkResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSubscriptionPortalLink indicates an expected call of GetSubscriptionPortalLink.
|
// GetSubscriptionPortalLink indicates an expected call of GetSubscriptionPortalLink.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) GetSubscriptionPortalLink(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) GetSubscriptionPortalLink(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubscriptionPortalLink", reflect.TypeOf((*MockAnyPpClientService)(nil).GetSubscriptionPortalLink), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubscriptionPortalLink", reflect.TypeOf((*MockAnyPpClientService)(nil).GetSubscriptionPortalLink), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSubscriptionStatus mocks base method.
|
// GetSubscriptionStatus mocks base method.
|
||||||
func (m *MockAnyPpClientService) GetSubscriptionStatus(ctx context.Context, in *paymentserviceproto.GetSubscriptionRequestSigned) (*paymentserviceproto.GetSubscriptionResponse, error) {
|
func (m *MockAnyPpClientService) GetSubscriptionStatus(arg0 context.Context, arg1 *paymentserviceproto.GetSubscriptionRequestSigned) (*paymentserviceproto.GetSubscriptionResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "GetSubscriptionStatus", ctx, in)
|
ret := m.ctrl.Call(m, "GetSubscriptionStatus", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.GetSubscriptionResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.GetSubscriptionResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSubscriptionStatus indicates an expected call of GetSubscriptionStatus.
|
// GetSubscriptionStatus indicates an expected call of GetSubscriptionStatus.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) GetSubscriptionStatus(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) GetSubscriptionStatus(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubscriptionStatus", reflect.TypeOf((*MockAnyPpClientService)(nil).GetSubscriptionStatus), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubscriptionStatus", reflect.TypeOf((*MockAnyPpClientService)(nil).GetSubscriptionStatus), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVerificationEmail mocks base method.
|
// GetVerificationEmail mocks base method.
|
||||||
func (m *MockAnyPpClientService) GetVerificationEmail(ctx context.Context, in *paymentserviceproto.GetVerificationEmailRequestSigned) (*paymentserviceproto.GetVerificationEmailResponse, error) {
|
func (m *MockAnyPpClientService) GetVerificationEmail(arg0 context.Context, arg1 *paymentserviceproto.GetVerificationEmailRequestSigned) (*paymentserviceproto.GetVerificationEmailResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "GetVerificationEmail", ctx, in)
|
ret := m.ctrl.Call(m, "GetVerificationEmail", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.GetVerificationEmailResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.GetVerificationEmailResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVerificationEmail indicates an expected call of GetVerificationEmail.
|
// GetVerificationEmail indicates an expected call of GetVerificationEmail.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) GetVerificationEmail(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) GetVerificationEmail(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVerificationEmail", reflect.TypeOf((*MockAnyPpClientService)(nil).GetVerificationEmail), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVerificationEmail", reflect.TypeOf((*MockAnyPpClientService)(nil).GetVerificationEmail), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init mocks base method.
|
// Init mocks base method.
|
||||||
func (m *MockAnyPpClientService) Init(a *app.App) error {
|
func (m *MockAnyPpClientService) Init(arg0 *app.App) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "Init", a)
|
ret := m.ctrl.Call(m, "Init", arg0)
|
||||||
ret0, _ := ret[0].(error)
|
ret0, _ := ret[0].(error)
|
||||||
return ret0
|
return ret0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init indicates an expected call of Init.
|
// Init indicates an expected call of Init.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) Init(a any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) Init(arg0 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockAnyPpClientService)(nil).Init), a)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockAnyPpClientService)(nil).Init), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNameValid mocks base method.
|
// IsNameValid mocks base method.
|
||||||
func (m *MockAnyPpClientService) IsNameValid(ctx context.Context, in *paymentserviceproto.IsNameValidRequest) (*paymentserviceproto.IsNameValidResponse, error) {
|
func (m *MockAnyPpClientService) IsNameValid(arg0 context.Context, arg1 *paymentserviceproto.IsNameValidRequest) (*paymentserviceproto.IsNameValidResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "IsNameValid", ctx, in)
|
ret := m.ctrl.Call(m, "IsNameValid", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.IsNameValidResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.IsNameValidResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNameValid indicates an expected call of IsNameValid.
|
// IsNameValid indicates an expected call of IsNameValid.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) IsNameValid(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) IsNameValid(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsNameValid", reflect.TypeOf((*MockAnyPpClientService)(nil).IsNameValid), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsNameValid", reflect.TypeOf((*MockAnyPpClientService)(nil).IsNameValid), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name mocks base method.
|
// Name mocks base method.
|
||||||
|
@ -176,31 +174,31 @@ func (mr *MockAnyPpClientServiceMockRecorder) Name() *gomock.Call {
|
||||||
}
|
}
|
||||||
|
|
||||||
// VerifyAppStoreReceipt mocks base method.
|
// VerifyAppStoreReceipt mocks base method.
|
||||||
func (m *MockAnyPpClientService) VerifyAppStoreReceipt(ctx context.Context, in *paymentserviceproto.VerifyAppStoreReceiptRequestSigned) (*paymentserviceproto.VerifyAppStoreReceiptResponse, error) {
|
func (m *MockAnyPpClientService) VerifyAppStoreReceipt(arg0 context.Context, arg1 *paymentserviceproto.VerifyAppStoreReceiptRequestSigned) (*paymentserviceproto.VerifyAppStoreReceiptResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "VerifyAppStoreReceipt", ctx, in)
|
ret := m.ctrl.Call(m, "VerifyAppStoreReceipt", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.VerifyAppStoreReceiptResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.VerifyAppStoreReceiptResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// VerifyAppStoreReceipt indicates an expected call of VerifyAppStoreReceipt.
|
// VerifyAppStoreReceipt indicates an expected call of VerifyAppStoreReceipt.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) VerifyAppStoreReceipt(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) VerifyAppStoreReceipt(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyAppStoreReceipt", reflect.TypeOf((*MockAnyPpClientService)(nil).VerifyAppStoreReceipt), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyAppStoreReceipt", reflect.TypeOf((*MockAnyPpClientService)(nil).VerifyAppStoreReceipt), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// VerifyEmail mocks base method.
|
// VerifyEmail mocks base method.
|
||||||
func (m *MockAnyPpClientService) VerifyEmail(ctx context.Context, in *paymentserviceproto.VerifyEmailRequestSigned) (*paymentserviceproto.VerifyEmailResponse, error) {
|
func (m *MockAnyPpClientService) VerifyEmail(arg0 context.Context, arg1 *paymentserviceproto.VerifyEmailRequestSigned) (*paymentserviceproto.VerifyEmailResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "VerifyEmail", ctx, in)
|
ret := m.ctrl.Call(m, "VerifyEmail", arg0, arg1)
|
||||||
ret0, _ := ret[0].(*paymentserviceproto.VerifyEmailResponse)
|
ret0, _ := ret[0].(*paymentserviceproto.VerifyEmailResponse)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
|
||||||
// VerifyEmail indicates an expected call of VerifyEmail.
|
// VerifyEmail indicates an expected call of VerifyEmail.
|
||||||
func (mr *MockAnyPpClientServiceMockRecorder) VerifyEmail(ctx, in any) *gomock.Call {
|
func (mr *MockAnyPpClientServiceMockRecorder) VerifyEmail(arg0, arg1 any) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyEmail", reflect.TypeOf((*MockAnyPpClientService)(nil).VerifyEmail), ctx, in)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyEmail", reflect.TypeOf((*MockAnyPpClientService)(nil).VerifyEmail), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue