Discord Management
- 1 Overview
- 2 Adding or Removing a Subteam
- 3 Roles
- 4 Channels
- 4.1 Discord Permission Mechanism for Channels
- 4.2 Permissions
- 4.2.1 Introduction
- 4.2.2 Information
- 4.2.3 Leadership
- 4.2.4 Committees
- 4.2.5 General
- 4.2.6 Each Subteam
- 4.2.7 Archives
- 5 Bots
- 6 Verification
Overview
The goal of the Discord server is to promote open discussion among all WARG members. Additionally, maintenance of private channels should be easy and hassle-free.
Roles:
Bootcampers have their view of the server restricted to their relevant subteam, so that they are not overwhelmed
Members can view all public channels, including channels of other subteams
Additional roles provide additional access to private channels
Channels:
Channels are organized by permission category wherever possible
Please follow the templates
Adding or Removing a Subteam
Add or remove the following:
Subteam specific roles:
Lead
Advisor
Member
Bootcamper
Onsite
Subteam specific roles (e.g. projects)
Subteam channels:
Check Integration category
Subteam category (see below)
Roles
The roles are set up in a way that the requirement chain will allow a user to always have increasing permissions (e.g. Flight Test Coordinator will always have read/write permissions from a prerequisite role). If someone complains about not having permissions, please check their roles are consistent with the table before changing the role permissions.
The Create Invite permission is disabled so that new members arrive from the WARG website .
Role properties (overridden by channel permissions for the specific channel):
D: Displayed separately in the member list
P: Can be pinged by anyone
A: Admininistrator
B: Moderator (most permissions except Administrator)
C: Can ping any role
R: Regular read/write permissions
N: No permissions
A has B, C, R
B has C, R
Role Name | Description | Permissions | Requires Role (transitive) |
---|---|---|---|
Director | Team leads Allows full access | D, A | Subteam Lead |
Director roles | Decorative | P, N | Director |
Subteam Lead | Team leads and subteam leads Allows access to all but not director nor subteam specific private | D, B | Verified OR Verified Manual |
Subteam lead roles except Safety Captain | Subteam leads Allows access to subteam specific private | P, N | Subteam Lead AND Any subteam |
Safety Captain | Read/write access to announcements | D, P, C | Any subteam OR Subteam Lead OR Director |
Faculty Advisor | Allows full access | D, N | Verified OR Verified Manual |
Advisor | Former WARG willing to advise | D, N | Verified OR Verified Manual |
Director Advisor | Advise directors Allows read/write access at director | N | Leads Advisor |
Leads Advisor | Advise all leads Allows read/write access at leads | View Audit log only | Advisor |
Remaining advisor roles | Advise specific subteam leads Allows access to subteam leads but not leads or subteam specific private | N | Advisor |
Alumni | Former WARG | D, R | Verified OR Verified Manual |
 |  |  |  |
Project Manager | Allows read/write access to announcements | C | Any subteam |
Co-op Hiring Coordinator | Allows access to co-op hiring | N | Any subteam |
Flight Test Coordinator | Allows read/write access to announcements | P, C | Any subteam |
Competition Member | Allows access to competition channels | P, N | Any subteam |
Truck Driver | Decorative | P, N | Any subteam |
Senior Member | Decorative | N | Any subteam |
 |  |  |  |
Bots Lead Access | Allows access to lead channels | N | Bots |
Bots | Decorative | N | - |
Individual bot roles | Minimum access to work properly | See Bots below | Bots |
 |  |  |  |
WARG Equipment | Decorative | N | Verified Manual |
Co-op at WARG | Decorative | N | Any subteam |
Non-UW Student | University student outside of UW | N | Verified OR Verified Manual |
Non-WARG UW Student | UW student, but not WARG | N | Verified OR Verified Manual |
 |  |  |  |
New Bootcamper | Automatically bot assigned Denies access to all subteam categories Is removed by a subteam lead | N | Verified OR Verified Manual |
Subteam bootcamper roles | Bot assigned Allows access to subteam specific categories (overrides New Bootcamper) | N | Any subteam |
Subteam roles | Bot assigned | D, N | Verified OR Verified Manual |
 |  |  |  |
Non-subteam specific roles except Archive Diver | Bot assigned | P, N | Any subteam |
Archive Diver | Bot assigned | N | Any subteam |
Onsite | Bot assigned | P, N | Any subteam |
Subteam onsite roles | Bot assigned | P, N | Onsite |
Subteam specific roles | Bot assigned | P, N | Any subteam |
Purely decorative roles | Bot assigned | N | - |
 |  |  |  |
Verified | Bot assigned Allows access to public | R | - |
Verified Manual | See instructions: Discord Verification Allows access to public | R | - |
everyone | Default Access to verification only | Send Messages, Read Message History, Use Application Commands only | - |
Bot Assignment
carl-bot handles bot assigned roles. carl-bot also handles prerequisite enforcement but only for when a user attempts to assign themselves a role (e.g. user cannot add Onsite without a subteam role, but nothing prevents the same user from removing their subteam role while keeping Onsite).
New Bootcamper is automatically assigned when a user joins the server. New Bootcamper can only be removed by a subteam lead.
Subteam Specific Roles
When adding or removing subteam specific roles, ensure that the reaction roles are updated:
Go to https://carl.gg/ and log in
Click on Manage to get to the server picker
Select the WARG Discord server
On the left, scroll down to get to Reaction roles under Utility
Edit the subteam reaction role message
The list may be paginated
Show embed builder to show the message to be edited
Edit the emojis
Channels
Discord Permission Mechanism for Channels
Discord’s channel permissions follow this pseudocode flow:
for each u_role in user.roles: # Administrator always allowed
if (u_role.is_administrator) then return allowed;
for each c_role in descending order of channel.roles: # Highest explicit role in channel
if (c_role.has_allow_permission and user.has_role(c_role)) then return allowed;
if (c_role.has_deny_permission and user.has_role(c_role)) then return denied;
for each u_role in user.roles: # Otherwise, if any of the user’s roles allows, then allow
if (u_role.has_allow_permission) then return allowed;
return denied;
An automatic bot role is counted as the highest role for channel permissions, regardless of its position. That is, the channel permissions for an automatic bot role overrides the others.
Permissions
Category: Permissions
Channel, listed if the permissions are different from the category:
Permissions
As the everyone role does not have View Channel permission by default, Verified and Verified Manual permissions are not required to be added to every channel.
Introduction
Landing: No special permissions
info-onboarding:
Subteam Lead: Read/write
everyone: Read-only
info-you-should-not-see-this:
Subteam Lead: Read/write
Remaining roles where the directly required role is Verified OR Verified Manual: Hidden
Bots: Hidden
WARG Equipment: Hidden
everyone: Read-only
verification:
Subteam Lead: Read/Write
Bots: Hidden
carl-bot role: Read/write
Sir Goose role: Read/write
Verified: Hidden
Verified Manual: Hidden
everyone: Read/write
Information
Information: No special permissions
announcements: Any channels for announcements follow this permission template
Subteam Lead: Read/write
Safety Captain: Read/write
Project Manager: Read/write
Flight Test Coordinator: Read/write
everyone: Read-only
information:
Subteam Lead: Read/write
everyone: Read-only
role-signup:
Subteam Lead: Read/write
carl-bot: Read/write
everyone: Read-only
Leadership
Directors: Permissions below. Any channels for directors follow this permission template
Faculty Advisor: Read/write
Director Advisor: Read/write
everyone: Hidden
Leads: Permissions below. Any channels for leads follow this permission template
Subteam Leads: Read/write
Faculty Advisor: Read/write
Leads Advisor: Read/write
Bots Lead Access: Read/write
everyone: Hidden
Committees
Any hidden channels that include roles beyond leads follow these permission templates
Co-op Hiring: Permissions below
Subteam Leads: Read/write
Leads Advisor: At discretion of Directors, currently Read/write
Co-op Hiring Coordinator: Read/write
Bots Lead Access: Read/write
everyone: Hidden
Competition Private: Permissions below
Subteam Leads: Read/write
Leads Advisor: At discretion of Directors, currently Hidden (i.e. not added)
Competition Member: Read/write
Bots Lead Access: Read/write
everyone: Hidden
General
General: everyone: Read/write
Onsite: Bootcamper: Hidden, everyone: Read/write
Off-topic: Bootcamper: Hidden, everyone: Read/write
Integration: Bootcamper: Hidden, everyone: Read/write
Each Subteam
Any subteam category follow this template
Subteam category: [subteam]-Bootcamper: Unhidden, Bootcamper: Hidden, everyone: Read/write
subteam-leads: Any additional subteam lead channels follow this template
Subteam Leads: Read/write
Leads Advisor: Read/write
Specific subteam advisor role: Read/write
Bots Lead Access: Read/write
everyone: Hidden
subteam-leads-channels:
Same permissions as subteam-leads above
subteam-leads-private:
Specific subteam leads role: Read/write
Note: The general Subteam Lead role does not have access, nor do any others
everyone: Hidden
subteam-announcements:
Same permissions as announcements above
Channels above follow the permissions specified
Channels below are synced with the category
bootcamp-subteam
subteam-general: Unabbreviated subteam name
subteam-channels: Subteam abbreviation followed by name, multiple allowed
subteam-onsite
subteam-vc-text
subteam-voice: Voice channel
subteam-[number]: Subteam abbreviation followed by number followed by name
Archives
Archive Private: Subteam Lead and Lead Advisor: Read-write, everyone: Hidden
Each channel may already have more restrictive permissions
When archiving a hidden channel, you do not need to sync (but can choose to do so).
Archive category: Permissions below
Subteam Lead: Read-write
Lead Advisor: Read-write
Archive Diver: Read-only
everyone: Hidden
When archiving a public channel, please sync to the Archive category.
Bots
BediBot:
Pinning messages
Assigning birthday role
carl-bot: Bots Lead Access
Welcome message
Automatic assignment of Bootcamper role
Reaction roles
Includes message management for reaction management
ChronicleBot:
Converts Google Calendar times into Discord events
Sir Goose:
UW verification only in channel verification
No read/write access elsewhere
Statbot:
Server and member statistics
WARGOps: Bots Lead Access
Asana
Verification
UW student verification is handled by Sir Goose. For manual verification, follow these instructions: Discord Verification
Â