We have many, many devices.
Each device has it’s own admin user, with a specific admin channel.
When a document is uploaded to sync gateway I want to put the doc on the channel that the user has assigned to them (other than the public channel).
I cannot see in the documentation where I can get information on the uploading user. How can I, in the sync function, tag the doc as being under the channels that the uploading user has?
Hi,
Accessing the user information from the sync function is not possible, since sync function may subsequently be rerun for the same doc in an admin context.
If there is only one channel assigned the user and it is same as username, you can add the owner
field. Then inside the sync function you can add using channel(doc.owner)
, also use the built-in requireUser
to validate the owner is the synchronizing user itself.
// sample doc
doc {
/// all your saved information
owner: <username>
}
// inside the sync function
requireUser(doc.owner);
channel(doc.owner);
Or else use channels
property in the document, which you can use it to provide access to channels.
// sample doc
doc {
/// all your saved information
channels: [channel1, channel2, ..]
}
// inside sync function
channel(doc.channels);
More about