@@ -10,12 +10,12 @@ import { ReadonlyDeep } from 'type-fest'
1010import { PeripheralDevices , Studios } from '../../collections'
1111import { meteorCustomPublish , setUpOptimizedObserverArray , TriggerUpdate } from '../../lib/customPublication'
1212import { logger } from '../../logging'
13- import { PeripheralDeviceReadAccess } from '../../security/peripheralDevice'
1413import {
1514 PeripheralDevicePubSub ,
1615 PeripheralDevicePubSubCollectionsNames ,
1716} from '@sofie-automation/shared-lib/dist/pubsub/peripheralDevice'
1817import { applyAndValidateOverrides } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'
18+ import { triggerWriteAccessBecauseNoCheckNecessary } from '../../security/lib/securityVerify'
1919
2020type StudioFields = '_id' | 'packageContainersWithOverrides'
2121const studioFieldSpecifier = literal < MongoFieldSpecifierOnesStrict < Pick < DBStudio , StudioFields > > > ( {
@@ -88,35 +88,33 @@ async function manipulateExpectedPackagesPublicationData(
8888meteorCustomPublish (
8989 PeripheralDevicePubSub . packageManagerPackageContainers ,
9090 PeripheralDevicePubSubCollectionsNames . packageManagerPackageContainers ,
91- async function ( pub , deviceId : PeripheralDeviceId , token : string | undefined ) {
91+ async function ( pub , deviceId : PeripheralDeviceId , _token : string | undefined ) {
9292 check ( deviceId , String )
9393
94- if ( await PeripheralDeviceReadAccess . peripheralDeviceContent ( deviceId , { userId : this . userId , token } ) ) {
95- const peripheralDevice = await PeripheralDevices . findOneAsync ( deviceId )
94+ triggerWriteAccessBecauseNoCheckNecessary ( )
9695
97- if ( ! peripheralDevice ) throw new Meteor . Error ( 'PeripheralDevice "' + deviceId + '" not found' )
96+ const peripheralDevice = await PeripheralDevices . findOneAsync ( deviceId )
9897
99- const studioId = peripheralDevice . studioId
100- if ( ! studioId ) {
101- logger . warn ( `Pub.packageManagerPackageContainers: device "${ peripheralDevice . _id } " has no studioId` )
102- return this . ready ( )
103- }
98+ if ( ! peripheralDevice ) throw new Meteor . Error ( 'PeripheralDevice "' + deviceId + '" not found' )
10499
105- await setUpOptimizedObserverArray <
106- PackageManagerPackageContainers ,
107- PackageManagerPackageContainersArgs ,
108- PackageManagerPackageContainersState ,
109- PackageManagerPackageContainersUpdateProps
110- > (
111- `${ PeripheralDevicePubSub . packageManagerPackageContainers } _${ studioId } _${ deviceId } ` ,
112- { studioId, deviceId } ,
113- setupExpectedPackagesPublicationObservers ,
114- manipulateExpectedPackagesPublicationData ,
115- pub ,
116- 500 // ms, wait this time before sending an update
117- )
118- } else {
119- logger . warn ( `Pub.packageManagerPackageContainers: Not allowed: "${ deviceId } "` )
100+ const studioId = peripheralDevice . studioId
101+ if ( ! studioId ) {
102+ logger . warn ( `Pub.packageManagerPackageContainers: device "${ peripheralDevice . _id } " has no studioId` )
103+ return this . ready ( )
120104 }
105+
106+ await setUpOptimizedObserverArray <
107+ PackageManagerPackageContainers ,
108+ PackageManagerPackageContainersArgs ,
109+ PackageManagerPackageContainersState ,
110+ PackageManagerPackageContainersUpdateProps
111+ > (
112+ `${ PeripheralDevicePubSub . packageManagerPackageContainers } _${ studioId } _${ deviceId } ` ,
113+ { studioId, deviceId } ,
114+ setupExpectedPackagesPublicationObservers ,
115+ manipulateExpectedPackagesPublicationData ,
116+ pub ,
117+ 500 // ms, wait this time before sending an update
118+ )
121119 }
122120)
0 commit comments