removed unnecessary cast
This commit is contained in:
parent
4209583a88
commit
8271452430
|
@ -18,7 +18,6 @@ import (
|
||||||
"github.com/pocketbase/pocketbase/tools/routine"
|
"github.com/pocketbase/pocketbase/tools/routine"
|
||||||
"github.com/pocketbase/pocketbase/tools/search"
|
"github.com/pocketbase/pocketbase/tools/search"
|
||||||
"github.com/pocketbase/pocketbase/tools/subscriptions"
|
"github.com/pocketbase/pocketbase/tools/subscriptions"
|
||||||
"github.com/spf13/cast"
|
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -486,6 +485,8 @@ func realtimeBroadcastRecord(app core.App, action string, record *core.Record, d
|
||||||
|
|
||||||
for _, chunk := range chunks {
|
for _, chunk := range chunks {
|
||||||
group.Go(func() error {
|
group.Go(func() error {
|
||||||
|
var clientAuth *core.Record
|
||||||
|
|
||||||
for _, client := range chunk {
|
for _, client := range chunk {
|
||||||
// note: not executed concurrently to avoid races and to ensure
|
// note: not executed concurrently to avoid races and to ensure
|
||||||
// that the access checks are applied for the current record db state
|
// that the access checks are applied for the current record db state
|
||||||
|
@ -495,6 +496,8 @@ func realtimeBroadcastRecord(app core.App, action string, record *core.Record, d
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clientAuth, _ = client.Get(RealtimeClientAuthKey).(*core.Record)
|
||||||
|
|
||||||
for sub, options := range subs {
|
for sub, options := range subs {
|
||||||
// create a clean record copy without expand and unknown fields
|
// create a clean record copy without expand and unknown fields
|
||||||
// because we don't know yet which exact fields the client subscription has permissions to access
|
// because we don't know yet which exact fields the client subscription has permissions to access
|
||||||
|
@ -506,8 +509,8 @@ func realtimeBroadcastRecord(app core.App, action string, record *core.Record, d
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
Query: options.Query,
|
Query: options.Query,
|
||||||
Headers: options.Headers,
|
Headers: options.Headers,
|
||||||
|
Auth: clientAuth,
|
||||||
}
|
}
|
||||||
requestInfo.Auth, _ = client.Get(RealtimeClientAuthKey).(*core.Record)
|
|
||||||
|
|
||||||
if !realtimeCanAccessRecord(app, cleanRecord, requestInfo, rule) {
|
if !realtimeCanAccessRecord(app, cleanRecord, requestInfo, rule) {
|
||||||
continue
|
continue
|
||||||
|
@ -534,7 +537,6 @@ func realtimeBroadcastRecord(app core.App, action string, record *core.Record, d
|
||||||
// ignore the auth record email visibility checks
|
// ignore the auth record email visibility checks
|
||||||
// for auth owner, superuser or manager
|
// for auth owner, superuser or manager
|
||||||
if collection.IsAuth() {
|
if collection.IsAuth() {
|
||||||
clientAuth, _ := client.Get(RealtimeClientAuthKey).(*core.Record)
|
|
||||||
if isSameAuth(clientAuth, cleanRecord) ||
|
if isSameAuth(clientAuth, cleanRecord) ||
|
||||||
realtimeCanAccessRecord(app, cleanRecord, requestInfo, collection.ManageRule) {
|
realtimeCanAccessRecord(app, cleanRecord, requestInfo, collection.ManageRule) {
|
||||||
cleanRecord.IgnoreEmailVisibility(true)
|
cleanRecord.IgnoreEmailVisibility(true)
|
||||||
|
@ -707,7 +709,7 @@ func realtimeCanAccessRecord(
|
||||||
|
|
||||||
// check the subscription client-side filter (if any)
|
// check the subscription client-side filter (if any)
|
||||||
// ---
|
// ---
|
||||||
filter := cast.ToString(requestInfo.Query[search.FilterQueryParam])
|
filter := requestInfo.Query[search.FilterQueryParam]
|
||||||
if filter == "" {
|
if filter == "" {
|
||||||
return true // no further checks needed
|
return true // no further checks needed
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue