Skip to content

Commit 0b4b1ae

Browse files
committed
Handle winning revision logic in authorizeDoc
1 parent db7a319 commit 0b4b1ae

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

db/crud.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,16 @@ func (col *DatabaseCollectionWithUser) authorizeDoc(doc *Document, revid string)
550550
if revid == "" {
551551
revid = doc.CurrentRev
552552
}
553-
if rev := doc.History[revid]; rev != nil {
553+
554+
if revid == doc.CurrentRev {
555+
ch := base.SetOf()
556+
for channelName, channelRemoval := range doc.Channels {
557+
if channelRemoval == nil || channelRemoval.Seq == 0 {
558+
ch.Add(channelName)
559+
}
560+
}
561+
return col.user.AuthorizeAnyCollectionChannel(col.ScopeName, col.Name, ch)
562+
} else if rev := doc.History[revid]; rev != nil {
554563
// Authenticate against specific revision:
555564
return col.user.AuthorizeAnyCollectionChannel(col.ScopeName, col.Name, rev.Channels)
556565
} else {

0 commit comments

Comments
 (0)