-
Notifications
You must be signed in to change notification settings - Fork 109
Open
Description
On server set these permissions:
presence:
"*":
allow: true
record:
"*":
create: true
write: user.id === 'ok'
read: true
delete: true
listen: true
notify: true
event:
"*":
publish: true
subscribe: true
listen: true
rpc:
"*":
provide: true
request: true
Then execute this on a file, expected behaviour described on code:
'use strict'
const { DeepstreamClient } = require('@deepstream/client')
const readWriteClient = new DeepstreamClient('localhost:6020/deepstream')
const readClient = new DeepstreamClient('localhost:6020/deepstream')
// this client can read and write
readWriteClient.login({ username: 'ok' })
// this client can only read
readClient.login()
readWriteClient.on('connectionStateChanged', (s) => {
if (s === 'OPEN') {
// we use the client that has write and read permission
readWriteClient.record.getRecord('test').whenReady((rec) => {
// everything works as intended
console.log('record data', rec.get())
rec.set('hello', 'world', (e) => {
console.log('no error on set', e === null)
console.log('updated record', rec.get())
// here is the issue:
// now with the client that does not have write permission, only read
readClient.record.getRecord('test').whenReady((r) => {
// we can read as intended
console.log('can read', r.get())
// we can not write, but an error should be called or emitted, instead the client just hangs
r.set('bye', 'world', (err) => {
// THIS SHOULD BE CALLED
console.log('error is never called', err)
})
})
})
})
}
})
readClient.on('error', (e) => {
// OR AN ERROR EMITED HERE
console.log('no error emitted', e)
})
Originally posted by @jaime-ez in #525 (comment)
Blackjack789
Metadata
Metadata
Assignees
Labels
No labels