From 16b8d9090bb38469e3da62fb3c41e42ddb1e5141 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Sun, 15 May 2022 18:07:49 +0300 Subject: [PATCH] Documentation: add Python3 syntax highlighting, +i/AMODE documentation and add FAQ on AMODE privileges (#1959) * MANUAL.md: correct shebangs * docs/{USERGUIDE,MANUAL}.md: mention amode +v joining through +i * MANUAL.md: add a FAQ on special privileges of AMODEs * USERGUIDE.md: add missing channel name * MANUAL.md: mention that special privileges are cumulative * Revert "MANUAL.md: correct shebangs" This reverts commit 75a77c55370089f2b144abc4104db5e13dcc2cb7. * MANUAL.md: restore syntax highlighting for python3 --- docs/MANUAL.md | 10 ++++++++-- docs/USERGUIDE.md | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/MANUAL.md b/docs/MANUAL.md index 81e789fa..383b71f9 100644 --- a/docs/MANUAL.md +++ b/docs/MANUAL.md @@ -562,10 +562,16 @@ Under these circumstances, users can follow the following steps: 1. Register a channel (`/msg ChanServ register #example`) 1. Set it to be invite-only (`/mode #example +i`) 1. Add the desired nick/account names to the invite exception list (`/mode #example +I alice`) -1. Anyone with persistent half-operator status or higher will also be able to join without an invite (`/msg ChanServ amode #example +h alice`) +1. Anyone with persistent voice or higher prefix will also be able to join without an invite (`/msg ChanServ amode #example +v alice`) Similarly, for a public channel (one without `+i`), users can ban nick/account names with `/mode #example +b bob`. (To restrict the channel to users with valid accounts, set it to registered-only with `/mode #example +R`.) +## What special privileges do AMODEs contain? + +Some persistent modes contain persistent privileges over temporary modes. These are cumulative, meaning that +o will get privileges of +h which again gets privileges of +v. + +* AMODE +v will be able to join when the channel is `invite-only` (without being on the +I list). +* AMODE +h will be able to join even if a ban matches them (without being on the +e list). ## How do I send an announcement to all connected users? @@ -1137,7 +1143,7 @@ The script must print a single line (`\n`-terminated) to its output and exit. Th Here is a toy example of an authentication script in Python that checks that the account name and the password are equal (and rejects any attempts to authenticate via certfp): -``` +```python3 #!/usr/bin/python3 import sys, json diff --git a/docs/USERGUIDE.md b/docs/USERGUIDE.md index db3c9291..e424e88b 100644 --- a/docs/USERGUIDE.md +++ b/docs/USERGUIDE.md @@ -119,5 +119,5 @@ If you have registered a channel, you can make it private. The best way to do th 1. Set your channel to be invite-only (`/mode #example +i`) 1. Identify the users you want to be able to access the channel. Ensure that they have registered their accounts (you should be able to see their registration status if you `/WHOIS` their nicknames). -1. Add the desired nick/account names to the invite exception list (`/mode #example +I alice`) +1. Add the desired nick/account names to the invite exception list (`/mode #example +I alice`) or give them persistent voice (`/msg ChanServ AMODE #example +v alice`) 1. If you want to grant a persistent channel privilege to a user, you can do it with `CS AMODE` (`/msg ChanServ AMODE #example +o bob`)