AccessRuleClient
AccessRuleClient:
object
Type declaration
create()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleCreateRequest |
eventHandlers? | { channel.created: ChannelCreatedHandler; channel.deleted: ChannelDeletedHandler; channel.edited: ChannelEditedHandler; channelGroup.created: ChannelGroupCreatedHandler; channelGroup.deleted: ChannelGroupDeletedHandler; channelGroup.edited: ChannelGroupEditedHandler; community.permission.edited: CommunityPermissionEditedHandler; } |
eventHandlers.channel.created? | ChannelCreatedHandler |
eventHandlers.channel.deleted? | ChannelDeletedHandler |
eventHandlers.channel.edited? | ChannelEditedHandler |
eventHandlers.channelGroup.created? | ChannelGroupCreatedHandler |
eventHandlers.channelGroup.deleted? | ChannelGroupDeletedHandler |
eventHandlers.channelGroup.edited? | ChannelGroupEditedHandler |
eventHandlers.community.permission.edited? | CommunityPermissionEditedHandler |
Returns
Promise<void>
Example
import {
ChannelOrChannelGroupGuid,
RoleOrMemberGuid,
AccessRuleCreateRequest,
ChannelOverlayPermission,
rootServer,
} from "@rootsdk/server-app";
export async function createExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
roleOrMemberId: RoleOrMemberGuid
): Promise<void> {
try {
// Set up the request
// 'undefined' values will not modify existing permissions, you can omit them if desired, they're included here for clarity
const request: AccessRuleCreateRequest = {
channelOrChannelGroupId: channelOrChannelGroupId,
roleOrMemberId: roleOrMemberId,
overlay: {
channelFullControl: undefined,
channelView: true,
channelUseExternalEmoji: undefined,
channelCreateMessage: true,
channelDeleteMessageOther: undefined,
channelManagePinnedMessages: undefined,
channelViewMessageHistory: undefined,
channelCreateMessageAttachment: undefined,
channelCreateMessageMention: undefined,
channelCreateMessageReaction: undefined,
channelMakeMessagePublic: undefined,
channelMoveUserOther: undefined,
channelVoiceTalk: undefined,
channelVoiceMuteOther: undefined,
channelVoiceDeafenOther: undefined,
channelVoiceKick: undefined,
channelVideoStreamMedia: undefined,
channelCreateFile: undefined,
channelManageFiles: undefined,
channelViewFile: undefined,
channelAppKick: undefined,
},
};
// Call the API
await rootServer.community.accessRules.create(request);
} catch (error) {
// Detect error
throw error;
}
}
Authorization
Declare the following permissions in your manifest:
"permissions": {
"channel": {
"FullControl": true
}
}
The community must also create channel access rules that give your code any needed visibility but don't deny these permissions via an overlay:
FullControlon the target channel or channel group
delete()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleDeleteRequest |
eventHandlers? | { channel.created: ChannelCreatedHandler; channel.deleted: ChannelDeletedHandler; channel.edited: ChannelEditedHandler; channelGroup.created: ChannelGroupCreatedHandler; channelGroup.deleted: ChannelGroupDeletedHandler; channelGroup.edited: ChannelGroupEditedHandler; community.permission.edited: CommunityPermissionEditedHandler; } |
eventHandlers.channel.created? | ChannelCreatedHandler |
eventHandlers.channel.deleted? | ChannelDeletedHandler |
eventHandlers.channel.edited? | ChannelEditedHandler |
eventHandlers.channelGroup.created? | ChannelGroupCreatedHandler |
eventHandlers.channelGroup.deleted? | ChannelGroupDeletedHandler |
eventHandlers.channelGroup.edited? | ChannelGroupEditedHandler |
eventHandlers.community.permission.edited? | CommunityPermissionEditedHandler |
Returns
Promise<void>
Example
import {
ChannelOrChannelGroupGuid,
RoleOrMemberGuid,
AccessRuleDeleteRequest,
rootServer,
} from "@rootsdk/server-app";
export async function deleteExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
roleOrMemberId: RoleOrMemberGuid,
): Promise<void> {
try {
// Set up the request
const request: AccessRuleDeleteRequest = {
channelOrChannelGroupId: channelOrChannelGroupId,
roleOrMemberId: roleOrMemberId,
};
// Call the API
await rootServer.community.accessRules.delete(request);
} catch (error) {
// Detect error
throw error;
}
}
Authorization
Declare the following permissions in your manifest:
"permissions": {
"channel": {
"FullControl": true
}
}
The community must also create channel access rules that give your code any needed visibility but don't deny these permissions via an overlay:
FullControlon the target channel or channel group
edit()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleEditRequest |
eventHandlers? | { channel.created: ChannelCreatedHandler; channel.deleted: ChannelDeletedHandler; channel.edited: ChannelEditedHandler; channelGroup.created: ChannelGroupCreatedHandler; channelGroup.deleted: ChannelGroupDeletedHandler; channelGroup.edited: ChannelGroupEditedHandler; community.permission.edited: CommunityPermissionEditedHandler; } |
eventHandlers.channel.created? | ChannelCreatedHandler |
eventHandlers.channel.deleted? | ChannelDeletedHandler |
eventHandlers.channel.edited? | ChannelEditedHandler |
eventHandlers.channelGroup.created? | ChannelGroupCreatedHandler |
eventHandlers.channelGroup.deleted? | ChannelGroupDeletedHandler |
eventHandlers.channelGroup.edited? | ChannelGroupEditedHandler |
eventHandlers.community.permission.edited? | CommunityPermissionEditedHandler |
Returns
Promise<void>
Example
import {
ChannelOrChannelGroupGuid,
RoleOrMemberGuid,
AccessRuleEditRequest,
ChannelOverlayPermission,
rootServer,
} from "@rootsdk/server-app";
export async function editExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
roleOrMemberId: RoleOrMemberGuid,
): Promise<void> {
try {
// Set up the request
// 'undefined' values will not modify existing permissions, you can omit them if desired, they're included here for clarity
const request: AccessRuleEditRequest = {
channelOrChannelGroupId: channelOrChannelGroupId,
roleOrMemberId: roleOrMemberId,
overlay: {
channelFullControl: undefined,
channelView: true,
channelUseExternalEmoji: undefined,
channelCreateMessage: true,
channelDeleteMessageOther: undefined,
channelManagePinnedMessages: undefined,
channelViewMessageHistory: undefined,
channelCreateMessageAttachment: undefined,
channelCreateMessageMention: undefined,
channelCreateMessageReaction: undefined,
channelMakeMessagePublic: undefined,
channelMoveUserOther: undefined,
channelVoiceTalk: undefined,
channelVoiceMuteOther: undefined,
channelVoiceDeafenOther: undefined,
channelVoiceKick: undefined,
channelVideoStreamMedia: undefined,
channelCreateFile: undefined,
channelManageFiles: undefined,
channelViewFile: undefined,
channelAppKick: undefined,
},
};
// Call the API
await rootServer.community.accessRules.edit(request);
} catch (error) {
// Detect error
throw error;
}
}
Authorization
Declare the following permissions in your manifest:
"permissions": {
"channel": {
"FullControl": true
}
}
The community must also create channel access rules that give your code any needed visibility but don't deny these permissions via an overlay:
FullControlon the target channel or channel group
get()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleGetRequest |
Returns
Promise<AccessRule>
Example
import {
ChannelOrChannelGroupGuid,
RoleOrMemberGuid,
AccessRule,
AccessRuleGetRequest,
rootServer,
} from "@rootsdk/server-app";
export async function getExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
roleOrMemberId: RoleOrMemberGuid,
): Promise<AccessRule> {
try {
// Set up the request
const request: AccessRuleGetRequest = {
channelOrChannelGroupId: channelOrChannelGroupId,
roleOrMemberId: roleOrMemberId,
};
// Call the API
const accessRule: AccessRule =
await rootServer.community.accessRules.get(request);
return accessRule;
} catch (error) {
// Detect error
throw error;
}
}
listByChannelOrChannelGroup()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleListByChannelOrChannelGroupRequest |
Returns
Promise<AccessRule[]>
Example
import {
ChannelOrChannelGroupGuid,
AccessRule,
AccessRuleListByChannelOrChannelGroupRequest,
rootServer,
} from "@rootsdk/server-app";
export async function listByChannelOrChannelGroupExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
): Promise<AccessRule[]> {
try {
// Set up the request
const request: AccessRuleListByChannelOrChannelGroupRequest = {
channelOrChannelGroupId: channelOrChannelGroupId,
};
// Call the API
const accessRules: AccessRule[] =
await rootServer.community.accessRules.listByChannelOrChannelGroup(
request,
);
return accessRules;
} catch (error) {
// Detect error
throw error;
}
}
listByRoleOrMember()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleListByRoleOrMemberRequest |
Returns
Promise<AccessRule[]>
Example
import {
RoleOrMemberGuid,
AccessRuleListByRoleOrMemberRequest,
AccessRule,
rootServer,
} from "@rootsdk/server-app";
export async function listByRoleOrMemberExample(
roleOrMemberId: RoleOrMemberGuid,
): Promise<AccessRule[]> {
try {
// Set up the request
const request: AccessRuleListByRoleOrMemberRequest = {
roleOrMemberId: roleOrMemberId,
};
// Call the API
const accessRules: AccessRule[] =
await rootServer.community.accessRules.listByRoleOrMember(request);
return accessRules;
} catch (error) {
// Detect error
throw error;
}
}
update()
Parameters
| Parameter | Type |
|---|---|
request | AccessRuleUpdateRequest |
eventHandlers? | { channel.created: ChannelCreatedHandler; channel.deleted: ChannelDeletedHandler; channel.edited: ChannelEditedHandler; channelGroup.created: ChannelGroupCreatedHandler; channelGroup.deleted: ChannelGroupDeletedHandler; channelGroup.edited: ChannelGroupEditedHandler; community.permission.edited: CommunityPermissionEditedHandler; } |
eventHandlers.channel.created? | ChannelCreatedHandler |
eventHandlers.channel.deleted? | ChannelDeletedHandler |
eventHandlers.channel.edited? | ChannelEditedHandler |
eventHandlers.channelGroup.created? | ChannelGroupCreatedHandler |
eventHandlers.channelGroup.deleted? | ChannelGroupDeletedHandler |
eventHandlers.channelGroup.edited? | ChannelGroupEditedHandler |
eventHandlers.community.permission.edited? | CommunityPermissionEditedHandler |
Returns
Promise<void>
Example
import {
ChannelOrChannelGroupGuid,
RoleOrMemberGuid,
AccessRuleUpdateRequest,
AccessRuleCreateRequest,
AccessRuleEditRequest,
AccessRuleDeleteRequest,
ChannelOverlayPermission,
rootServer,
} from "@rootsdk/server-app";
export async function updateExample(
channelOrChannelGroupId: ChannelOrChannelGroupGuid,
roleOrMemberId: RoleOrMemberGuid,
): Promise<void> {
try {
// Set up the request
// 'undefined' values will not modify existing permissions, you can omit them if desired, they're included here for clarity
const request: AccessRuleUpdateRequest = {
creates: [
{
channelOrChannelGroupId: channelOrChannelGroupId,
roleOrMemberId: roleOrMemberId,
overlay: {
channelFullControl: undefined,
channelView: true,
channelUseExternalEmoji: undefined,
channelCreateMessage: true,
channelDeleteMessageOther: undefined,
channelManagePinnedMessages: undefined,
channelViewMessageHistory: undefined,
channelCreateMessageAttachment: undefined,
channelCreateMessageMention: undefined,
channelCreateMessageReaction: undefined,
channelMakeMessagePublic: undefined,
channelMoveUserOther: undefined,
channelVoiceTalk: undefined,
channelVoiceMuteOther: undefined,
channelVoiceDeafenOther: undefined,
channelVoiceKick: undefined,
channelVideoStreamMedia: undefined,
channelCreateFile: undefined,
channelManageFiles: undefined,
channelViewFile: undefined,
channelAppKick: undefined,
},
},
],
edits: [],
deletes: [],
};
// Call the API
await rootServer.community.accessRules.update(request);
} catch (error) {
// Detect error
throw error;
}
}
Authorization
Declare the following permissions in your manifest:
"permissions": {
"channel": {
"FullControl": true
}
}
The community must also create channel access rules that give your code any needed visibility but don't deny these permissions via an overlay:
FullControlon the target channel or channel group