Discord Management

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)

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:

  1. Go to https://carl.gg/ and log in

  2. Click on Manage to get to the server picker

  3. Select the WARG Discord server

  4. On the left, scroll down to get to Reaction roles under Utility

  5. Edit the subteam reaction role message

    1. The list may be paginated

    2. Show embed builder to show the message to be edited

    3. 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

Â