Muting users
Access Manager enables you to manage access for individual users so they can be muted on specific channels.
Mute user in channels
To mute user-1
in specific channels, call the grant token method and request only read
permissions on these channels.
pubnub.grantToken(
{
ttl: 15,
authorized_uuid: "user-1",
resources: {
channels: {
"channel-a": {
read: true
},
"channel-b": {
read: true
}
}
}
}, function(status, token) {
console.log(token);
}
);
channels = [
Channel.id("channel-a").read(),
Channel.id("channel-b").read()
]
envelope = pubnub.grant_token()
.channels(channels)
.ttl(15)
.authorized_uuid("user-1")
.sync()
pubnub.grantToken()
.ttl(15)
.authorizedUUID("user-1")
.channels(Arrays.asList(
ChannelGrant.name("channel-a").read()
ChannelGrant.name("channel-b").read()))
.async(new PNCallback<PNGrantTokenResult>() {
@Override
public void onResponse(@Nullable PNGrantTokenResult result, @NotNull PNStatus status) {
if (status.error()) {
// Handle error
}
else {
// Handle result
}
}
});
pubnub.grantToken(
ttl = 15,
authorizedUUID = "user-1",
channels = listOf(
ChannelGrant.name(name = "channel-a", read = true, write = false),
ChannelGrant.name(name = "channel-b", read = true, write = false)
)
)
.async { result, status ->
if (status.error) {
// Handle error
} else {
// Handle result
}
}