default( )
Sets a permissions handler for default permissions.
Description
The handler set by the default()
function is used for permission checks by the permissions
router for all channels where an explicit handler has not been added. For channel resources,
if no explicit handler has been set, the resource will inherit the permissions of its parent
channel.
For example, suppose you have the following channel, resources, and permissions:
- channel: A, permissions: no handler specified
- channel: A, resource: 1, permissions: no handler specified
- channel: A, resource: 2, permissions: handler is specified
Permissions will be checked as follows:
- A: use the handler set by
default()
function - A, 1: use the handler set by
default()
function - A, 2: use the handler set by
add()
function for this resource
If no default handler is set, subscribers to channels without explicit permissions handlers will
receive the following permissions:
{"read": true}
Syntax
function default(handler: PermissionsHandler): voidhandler: function PermissionsHandler(channel: Channel, subscriber: Subscriber): Promise<ChannelPermissions> | ChannelPermissions
default Parameters
NAME
TYPE
DESCRIPTION
The name of the function or the function expression to use when checking default permissions.
Returns
This function does not return anything.
Return Type:
PermissionsHandler Parameters
NAME
TYPE
DESCRIPTION
The channel to grant permissions to.
The subscriber to grant permissions to.
Returns
Return Type:
|
ChannelPermissionsChannelPermissions
ChannelPermissions
NAME
TYPE
DESCRIPTION
Whether the subscriber has read permissions. Defaults to true
.
Was this helpful?
1// In realtime-permissions.js23import {permissionsRouter} from 'wix-realtime-backend';45// ...67permissionsRouter.default( (channel, subscriber) => {8 // return default permissions9 return {"read": true};10} );
1// In realtime-permissions.js23import {permissionsRouter} from 'wix-realtime-backend';45permissionsRouter.default( (channel, subscriber) => {6 return {"read": true};7} );89const membersOnlyChannel = {"name": "MembersOnly"};1011permissionsRouter.add(membersOnlyChannel, (channel, subscriber) => {12 if(subscriber.type === "Member") {13 return {"read": true};14 }15 else {16 return {"read": false};17 }18});1920export function realtime_check_permission(channel, subscriber) {21 return permissionsRouter.check(channel,subscriber);22}
1// In realtime-permissions.js23import { members } from `wix-members-backend`;4import { permissionsRouter } from 'wix-realtime-backend';56permissionsRouter.default((channel, subscriber) => {7 return {"read": true};8});910const membersOnlyChannel = {"name": "MembersOnly"};1112permissionsRouter.add( membersOnlyChannel, async (channel, subscriber) => {13 let member = await members.getMember(subscriber.id, { fieldsets: ['FULL'] });1415 if(channel.resourceId === "BobsOnly") {16 if(member.contactDetails.firstName === "Bob") {17 return { "read": true };18 }19 else {20 return { "read": false };21 }22 }23 else {24 return { "read": true };25 }26} );2728export function realtime_check_permission(channel, subscriber) {29 return permissionsRouter.check(channel, subscriber);30}