# Moderation, Roles & Privileges

Moderation Overview

We determine a user's moderation capabilities based on their current role.

| Roles                       | Description                                                                                              |
| --------------------------- | -------------------------------------------------------------------------------------------------------- |
| None                        | The user has no moderation privileges.                                                                   |
| Moderator                   | The user can assert general moderation privileges on other users.                                        |
| Super-Moderator             | The user can assert general moderation privileges and be exempt from moderation from other users.        |
| Global-Admin (Admin Only)\* | The user can assign the roles of others, assert all moderation privileges and be exempt from moderation. |

*\*This role cannot be assigned to a user, but only to an Admin.*

When you are routed to SP Console after clicking **Go to Console** in your newly created application in the social.plus Portal, you will be logged in as a super-admin. This is different from the global admin and must NOT be used for normal administration tasks for the following reasons:

1. It cannot generate an Admin API access token used in making server-to-server API calls.
2. It must be reserved for operations that only a super-admin can perform such as uploading a push notification certificate.

{% hint style="warning" %}
You must create a new admin account for normal administration tasks.
{% endhint %}

### Change User Role

You can promote a user's role from a member to a moderator. Alternatively, a community moderator can also be demoted to a member.

These are the steps to change a user's role:

1. In the left menu, select **Community** > **Communities**.
2. In the **Community Management** page, select a community.
3. In the community's page, click **Members** tab.
4. Select the member and click the **Change user role** <img src="https://2352509137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MX0mOAVWkotGme0iRzu%2Fuploads%2F7ismOtLqKRkmVPeaTQwL%2FScreenshot%202567-05-10%20at%2014.00.28.png?alt=media&#x26;token=c4318dd3-3147-4197-8d79-d0d720678d0e" alt="" data-size="line"> button.
5. In the **Change role** pop-up, select the user's new role and click **Confirm** to submit.

<figure><img src="https://2352509137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MX0mOAVWkotGme0iRzu%2Fuploads%2FY9xsHrxG4UFyD0vqip5r%2FScreenshot%202567-05-10%20at%2014.00.57.png?alt=media&#x26;token=8d1c6156-1e61-401e-af0a-95ee5510dd70" alt=""><figcaption></figcaption></figure>

### Create Role

You can create a new role with customized permissions by following these steps:

1. in the left menu, select **Users** > **Roles.**
2. In the **Roles & Permissions** page, click the Create a new role <img src="https://2352509137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MX0mOAVWkotGme0iRzu%2Fuploads%2FefjQwPRcbJ84PGPR7muT%2FScreenshot%202567-05-10%20at%2014.01.58.png?alt=media&#x26;token=f51069e2-a8a7-4b91-92d2-5534195edb41" alt="" data-size="line"> button on the upper right.
3. In the **Create role** page, provide a name for the role that you will create.
4. Customize the permissions by selecting from the list in the **Permissions** section on the right.
5. Click **Create**.

<figure><img src="https://2352509137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MX0mOAVWkotGme0iRzu%2Fuploads%2FQxHjnPGKjbB1aifc8bQB%2FScreenshot%202567-05-10%20at%2014.02.45.png?alt=media&#x26;token=f955775f-715e-4bad-8966-fdc01ab074c9" alt=""><figcaption></figcaption></figure>

## Admin Moderation Privileges

social.plus Console provides administrators the ability to observe and control messages in channels.

Moderation tools range from automatic operations such as the blocklisting of words/phrases to controlled operations such as the manual banning and muting of users.

### Blocklisting

Blocklisting is used to block certain words from being sent in social.plus's Chat and Social SDK. When a word is blocklisted, anytime a user attempts to send a message, comment, or a post with that word, it will not be sent.

Contents that are moderated are:

* Messages
* Posts
* Comments
* Poll questions and answers

Contents that are not moderated include:

* Community names
* Community category names
* Channel names
* User display names
* File names
* Reaction names
* Network names
* Role names

### Allow List

social.plus by default prevents any link or URL from being sent. However, websites can be whitelisted so that links with that website domain can be sent.

You can enable or disable this feature.

<figure><img src="https://2352509137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MX0mOAVWkotGme0iRzu%2Fuploads%2FXEKf0ipbpoz7ZLgYg63h%2FScreenshot%202567-05-09%20at%2010.22.51.png?alt=media&#x26;token=50051166-1e69-48ca-a014-ca9ed543ab3d" alt=""><figcaption></figcaption></figure>

## Banning Users

2 types of ban can be performed on a user:

1. Global Ban
2. Channel Ban

### Global Ban

Admins have the ability to global ban a user. When a user is globally banned, they will no longer be able to authenticate with ASC and will be forcibly removed from all their existing channels. All the globally banned user's messages will also be deleted. If the SDK has already cached the messages, they will only disappear when refreshed. Note that the globally banned user's social content, such as posts, comments, and community membership, will *not* be removed.

The globally banned user will not be able to authenticate with social.plus's network again until they have been globally unbanned.

#### Global-banning a user

To perform a global ban on a user:

1. In SP Console, go to **Users**.
2. Select the user you wish to ban.
3. In **Actions**, click the ban user icon.
4. Click **Confirm** in the confirmation pop-up.

{% hint style="info" %}
When a user is global-banned, it can take up to 30 seconds before the user is disconnected from the network. Global ban also does not emit channel ban event and there would be no update via Live Collection.
{% endhint %}

#### **Global-unbanning User**

To unban a user who has been globally banned:

1. In SP Console, go to **Users**.
2. Select the user you wish to unban.
3. In **Actions**, click the unban user icon.
4. Click **Confirm** in the confirmation pop-up.

### Channel Ban

Admins also can ban a user at the channel level. When a user is banned in a channel, unlike a global ban, the user will not get disconnected but will only get an event on both the user and channel levels. All messages of the banned user in the specified channel will be soft deleted.

There is a real-time event telling online users in the channel that a user has been banned. Therefore, SDK can do soft delete locally and reflect the changes onto the message list right away via LiveCollection.

#### Channel-banning User

To perform a channel ban on a user:

1. In the SP Console, go to **Channels**.
2. Select the channel where the User is a member.
3. Click the **Members** button.
4. Select the User in the channel that you wish to ban.
5. In **Actions**, click the ban user icon.
6. Click **Confirm** in the confirmation pop-up.

#### **Channel-unbanning User**

To unban a user who has been banned from the channel:

1. In SP Console, go to **Channels.**
2. Select the channel where the User is a member.
3. Click **Members** button.
4. Select the User in the channel that you wish to ban.
5. In **Actions**, click the unban user icon.
6. Click **Confirm** in the confirmation pop-up.

## General Moderation Privileges

These moderation tools are available to all admins and users with moderator and super-moderator roles.

### Muting and Unmuting

Moderators can mute and unmute users. When a user is muted, they cannot send messages in a channel. However, muted users will still be allowed to observe messages in a channel. The status of being muted is indefinite but is only applied at the channel level.

### Banning Unbanning

Moderators can ban and unban users. When a user is banned from a channel, they are forcibly removed from the channel and may no longer participate or observe messages in that channel. All their previous messages in the channel will also be automatically deleted.

A user that has been banned from a channel can not rejoin the channel until they have been unbanned.

## Moderation Level

Any front-end user of a network can be promoted into a moderator. There are two types of moderators:

1. **Network Level Moderators**\
   They can moderate all posts, comments, and users in all communities across the entire network.\\
2. **Community Level Moderators**\
   They have the same set of permissions as the Network Level Moderators but are only limited within the community wherein they are the moderators.

{% hint style="info" %}

1. UIKit for iOS and Android supports both moderation levels so all moderators can see more menus not available to non-moderators.
2. UIKit for the web supports community-level moderation only.
   {% endhint %}

### Moderator Permissions

Making a user an administrator allows them to:

* Create, edit, or delete roles
* Create, edit, or delete community categories
* Delete or edit communities
* Add, edit, ban, or remove community users
* Edit, review, or delete community posts
* Edit or delete community comments
* Manage posts, comments, and communities

### How to promote a user to a network-level moderator

To promote a user to a network-level moderator, perform these steps:

1. In SP Console, go to **Users**.
2. Select the user you wish to upgrade.
3. In **Actions**, click the Change role icon.
4. Select **Network Moderator** from the user role dropdown.

### How to promote a user to a community-level moderator

Promoting a user to a community-level moderator can be done via [**API**](https://api-docs.amity.co/#/Community/post_api_v4_communities__communityId_users_roles), [**SDK**](https://docs.social.plus/social-plus-sdk/social/communities/community-moderation#add-roles), or by the [**Change User Role**](#change-user-role) settings in the Console.
