1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-09 17:45:03 +09:00

Merge pull request #173 from anyproto/GO-2971-revoke-invites-multiple

GO-2971: Revoke invites
This commit is contained in:
Mikhail Rakhmanov 2024-02-27 19:15:55 +01:00 committed by GitHub
commit c9b61a37f5
Signed by: github
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View file

@ -36,6 +36,7 @@ type AclSpaceClient interface {
ChangePermissions(ctx context.Context, permChange list.PermissionChangesPayload) (err error) ChangePermissions(ctx context.Context, permChange list.PermissionChangesPayload) (err error)
RequestSelfRemove(ctx context.Context) (err error) RequestSelfRemove(ctx context.Context) (err error)
RevokeInvite(ctx context.Context, inviteRecordId string) (err error) RevokeInvite(ctx context.Context, inviteRecordId string) (err error)
RevokeAllInvites(ctx context.Context) (err error)
AddAccounts(ctx context.Context, add list.AccountsAddPayload) (err error) AddAccounts(ctx context.Context, add list.AccountsAddPayload) (err error)
} }
@ -115,6 +116,20 @@ func (c *aclSpaceClient) RemoveAccounts(ctx context.Context, payload list.Accoun
return c.sendRecordAndUpdate(ctx, c.spaceId, res) return c.sendRecordAndUpdate(ctx, c.spaceId, res)
} }
func (c *aclSpaceClient) RevokeAllInvites(ctx context.Context) (err error) {
c.acl.Lock()
payload := list.BatchRequestPayload{
InviteRevokes: c.acl.AclState().InviteIds(),
}
res, err := c.acl.RecordBuilder().BuildBatchRequest(payload)
if err != nil {
c.acl.Unlock()
return
}
c.acl.Unlock()
return c.sendRecordAndUpdate(ctx, c.spaceId, res)
}
func (c *aclSpaceClient) StopSharing(ctx context.Context, readKeyChange list.ReadKeyChangePayload) (err error) { func (c *aclSpaceClient) StopSharing(ctx context.Context, readKeyChange list.ReadKeyChangePayload) (err error) {
c.acl.Lock() c.acl.Lock()
var ( var (

View file

@ -111,6 +111,13 @@ func TestAclExecutor(t *testing.T) {
{"a.batch::remove:e,y;add:z,rw,mz|u,r,mu;revoke:inv1Id;approve:l,r;approve:p,adm;decline:s", nil}, {"a.batch::remove:e,y;add:z,rw,mz|u,r,mu;revoke:inv1Id;approve:l,r;approve:p,adm;decline:s", nil},
{"p.remove::l", nil}, {"p.remove::l", nil},
{"s.join::inv1Id", ErrNoSuchInvite}, {"s.join::inv1Id", ErrNoSuchInvite},
{"p.invite::i1", nil},
{"p.invite::i2", nil},
{"r.join::i1", nil},
{"q.join::i2", nil},
{"p.batch::revoke:i1;revoke:i2", nil},
{"f.join::i1", ErrNoSuchInvite},
{"f.join::i2", ErrNoSuchInvite},
} }
for _, cmd := range cmds { for _, cmd := range cmds {
err := a.Execute(cmd.cmd) err := a.Execute(cmd.cmd)