> For the complete documentation index, see [llms.txt](https://zts-guard.gitbook.io/zts-guard-discord-bot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zts-guard.gitbook.io/zts-guard-discord-bot/setup-announcement-access.md).

# Setup Announcement Access

The `Announcement Access` feature of the `ZTS Guard` Discord Bot is crucial for every Discord server. This feature prevents any user (except the Server Owner or Cold Admin) from having native access to post in an announcement channel, or in any channel where an **Admin**, **Team**, or **Mod** user account needs to ping a role.

This bot requires registered members to complete a separate, external 2FA authentication to post an announcement and use the `Mention @everyone, @here, and All Roles` permission, with a temporary time limit set by the `ZTS Guard` Discord Bot.

This security feature helps prevent scenarios where a compromised **Admin**, **Team**, or **Mod** user account could post malicious links in the announcement channel and spam everyone without additional authentication. Assuming server permissions are set up correctly, it addresses the primary risk of a compromised team or moderator account posting an announcement with a wallet drainer link, potentially impacting the entire community.

## Steps to setup Announcement Access

{% stepper %}
{% step %}

### Ensure Specific Non-Admin Mods are registered

It is important to ensure that Non-Admin, Mods that you want to be able to make an announcement or ping roles in all channels or specific channels were registered as Mods in [this section](/zts-guard-discord-bot/allowlist-mods.md) specifically ensuring they have the `Can Post Announcements` option selected.  This is within `#ZTS-Guard-Admin` → Type `/setup` → select `Temporary Permission Settings`. Then select `Manage Mod Permissions` and the user having the `Can Post Announcements` option selected.

{% hint style="warning" %}
Registered Admins within the ZTS Guard Discord Bot already have all temporary permissions enabled for them which includes this permission.  Therefore you only need to do this for Mods which are Non-Admins.
{% endhint %}
{% endstep %}

{% step %}

### Setup Announcement Access

Within `#ZTS-Guard-Admin` → Type `/setup` →`Announcement Settings` and you will see two options, which each are specific to how you would like to set this up:

**Manage Default Channels** — Register channels you want all registered users who have the `Can Post Announcements` can post and ping all roles in.

**Manage User Channels** — Specifically select a single user and specify specific channels you want them to have access too only, and not all registered channels.\
\
Click `Manage Default Channels` and select all channels you want registered users with `Can Post Announcements` permission to be able to access, write, post, and ping roles upon a successful 2FA authentication within the configured time limit.

{% hint style="info" %}
The default is **20 minutes** and is the recommended setting. This controls how long a session lasts before 2FA must be re-entered. This can be changed by altering the Temporary Permissions Timeout in the `/setup` → `Temporary Permissions Settings` → `Set temporary permissions timeout`
{% endhint %}

Optionally if you want to specifically only allow a registered mod who has the `Can Post Announcements` permission to only be able to access, write, post, and ping roles upon a successful 2FA authentication within the configured time limit. within a specific channel and not all the default channels, then follow these steps:

* Within `#ZTS-Guard-Admin` → Type `/setup` → `Announcement Settings` → `Manage User Channels`
* Enter the username of the account (One at a time, if multiple) and then select the specific channels you want them to only get access too upon a successful 2FA authentication

#### Example of both setups

Let's say we have **User1** and **User2** registered with the `Can Post Announcements` and within the `Manage Default Channels` we have `#announcements` , `#general`, & `#giveaways` .\
\
Then we have User3 who was registered with the `Can Post Announcements` and within the `Manage User Channels` and only select `#giveaways` .\
\
The below shows who has access to what channels:

| Users         | Default Channels or User Specific Channels | What Channels can they Post in?               |
| ------------- | ------------------------------------------ | --------------------------------------------- |
| User1         | Default Channels                           | `#announcements` , `#general`, & `#giveaways` |
| User2         | Default Channels                           | `#announcements` , `#general`, & `#giveaways` |
| User3         | User Specific Channels                     | `#giveaways` only                             |
| {% endstep %} |                                            |                                               |

{% step %}

### Show Config

Within `#ZTS-Guard-Admin` → Type `/setup` → `Announcement Settings` → `Show Config` .  This output shows what default channels are registered and if any users have been specifically setup to specific channels only and what channels.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Once this is setup the **Admins**, **Teams**, and **Mods** should not have any permissions that natively gives them access to post a message in the announcement channel or ping a role in the registered channels.
{% endhint %}
