---
source_url: https://www.pubnub.com/docs/chat/unreal-chat-sdk/build/features/users/permissions
title: Permissions
updated_at: 2026-05-19T12:10:35.079Z
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# Permissions

Control who can access channels and user metadata in your chat app. Define permission schemas to protect against [unauthorized access](https://www.pubnub.com/docs/chat/unreal-chat-sdk/learn/access-control).

**Examples:**

* Restrict channel/profile modifications to specific users
* Allow only admins to remove users from channels

**Unreal Chat SDK limitations** (client-side only):

* Channel membership restrictions (direct, group, public)
* Feature availability errors in public chats (typing indicator, invites, read receipts)

Use [Access Manager](https://www.pubnub.com/docs/general/security/access-control) for strict server-enforced access rules. We recommend [Unreal SDK's Access Manager](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager) for server-side operations.

## Required configuration

1. Enable Access Manager in the [Admin Portal](https://admin.pubnub.com/).
2. [Initialize Unreal SDK](https://www.pubnub.com/docs/sdks/unreal): Server: with Secret Key to administer permissions
3. [Initialize Unreal Chat SDK](https://www.pubnub.com/docs/chat/unreal-chat-sdk/build/configuration#initialize-pubnub): Client: with Auth Key to authenticate users

See [Moderation](https://www.pubnub.com/docs/chat/unreal-chat-sdk/build/features/users/moderation#server-side-restrictions) for examples.

:::warning Secret key security
Never expose `Secret Key` to clients. If compromised, generate a new one in the Admin Portal.
:::

## Use Access Manager

Available [Unreal SDK](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager) methods:

* [GrantToken()](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager#grant-token) - Generate time-limited token with access control list
* [RevokeToken()](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager#revoke-token) - Disable token and revoke permissions
* [ParseToken()](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager#parse-token) - Decode token to view permissions
* [SetToken()](https://www.pubnub.com/docs/sdks/unreal/api-reference/access-manager#set-token) - Update authentication token

:::note Channel group limitation
Unreal Chat SDK doesn't support channel groups. Set permissions only for channels and users.
:::

### Resource permissions

Define operations users can perform on PubNub resources:

| Resource type | Permissions |
| --- | --- |
| `channels` | `read`, `write`, `get`, `manage`, `update`, `join`, `delete` |
| `uuids` | `get`, `update`, `delete` |

Read the [Moderation](https://www.pubnub.com/docs/chat/unreal-chat-sdk/build/features/users/moderation#secure-moderation) documentation to learn how you can mute and ban users in your chat app and secure these restrictions with Access Manager.

### Check for permissions

You can use the `AccessManager->CanI()` method to check if the current user has permissions for particular operations on a specific resource. For more information, refer to [Token permissions](https://www.pubnub.com/docs/chat/unreal-chat-sdk/learn/access-control#token-permissions).