Levels
The Levels system is an alternative to the xOP channel access system. This method allows for finer control of various channel features and user rights as opposed to the predefined VOP/HOP/AOP/SOP/ used in the xOPs system. Read on for the details.
Contents
Syntax and Enabling
First things first, you will have to disabled the xOP system to be able to use the Levels system on your channel:
/CHANSERV SET #channel XOP off
Your current xOP user access list will be converted into the Levels system automatically, following this conversion table:
xOP -> LEVEL ----------- VOP -> 3 HOP -> 4 AOP -> 5 SOP -> 10
From here on, you will not be able to use the old xOP edit commands to maintain user accesses, unless you switch back to the xOP system (which typically isn't recommended to do). So, the following does NOT work anymore:
/CHANSERV [VOP|HOP|AOP|SOP] #channel ADD nick
Instead you will have to assign an access level instead, using the following command syntax:
/CHANSERV ACCESS #channel ADD nickname level
For instance, to grant aRandomUser the equivalent rights of HOP on your channel #testingIsFun, you have to issue the following command:
/CHANSERV ACCESS #testingIsFun ADD aRandomUser 4
Basic Access commands overview
Now for some basic access list management commands:
Access List
Viewing the access list:
/CHANSERV ACCESS #channel LIST
Access Add
Adding a registered user to the access list:
/CHANSERV ACCESS #channel ADD nickname level
For instance, assigning level 5 (the equivalent of AOP) to the user DennisOpper on channel #filmfreaks:
/CHANSERV ACCESS #filmfreaks ADD DennisOpper 5
Access Del
Removing a registered user from the access list:
/CHANSERV ACCESS #channel DEL nickname
For instance, removing the user DennisOpper from the access list of channel #filmfreaks:
/CHANSERV ACCESS #filmfreaks DEL DennisOpper
Basic Access commands overview
And an overview of the basic levels commands, which are used to indicate which commands a certain numeric level has access to:
Levels Desc
See the complete list of possible LEVELS descriptions:
/CHANSERV HELP LEVELS DESC
It shows a list of the possible levels and what they do. These will be described in more detail, along with their default levels in the Channel Options section.
Levels List
See a rather large list of all configurable channel options and their current minimum required levels:
/CHANSERV LEVELS #channel LIST
This will for instance show:
KICKME 5
which means you'll need at least level 5 before you can kick yourself. Another one from the list:
AUTOPROTECT 10
which means you need at least level 10 before you will automatically get channel-usermode +a (admin/PROTECT).
A complete list of options is in the Channel Options section.
AutoVoice everyone
If you want to auto-voice everyone who enters your channel, you can lower the minimum required level for AUTOVOICE to 0 (the default user level)
/CHANSERV LEVELS #channel SET autovoice 0
Channel Options
With the Levels system comes the ability to set what level of user can use a given function or gain a specific channel status. This is the complete list as extracted from /CHANSERV help levels desc
Notes:
- Casing was added to the option names for readability
- 'Disabled' as the default level means 'Restricted to Founder'
User statuses
Option | Description | Default Min.Level |
---|---|---|
AutoDeOp | Disallow a user operator access, even if someone manually ops with /mode #channel +o nickname | -1 |
AutoHalfop | Automatic halfop (+h) on join (Same effect as /CHANSERV HOP in xOP) | 4 |
AutoOp | Automatic op (+o) on join. (Same as /CHANSERV AOP in xOP) | 5 |
AutoProtect | Automatic admin/protected op (+a) on join. (Same as /CHANSERV SOP in xOP) | 10 |
AutoVoice | Automatic voice (+v) on join. (Same as /CHANSERV VOP in xOP) | 3 |
NoJoin | Disallowed to join the channel. | -2 |
SignKick | Kick messages done through ChanServ or a Services Bot will not be signed when the level is equal or above this number if /CHANSERV SET #channel SIGNKICK LEVEL is set. However, this seems to be broken currently in the Anope services, since it will always sign regardless of level. |
Disabled |
Acc-List | Permit the viewing of the access list via /CHANSERV access #channel list (useful if you want to let people see who your channel staff is) | 1 |
Acc-Change | Permit the modification of the access list | 10 |
AKick | Permit the use of the AKick command. | 10 |
Set | Permit the use of /CHANSERV SET, except for the FOUNDER and PASSWORD options which remain restricted to the channel founder. | Disabled |
Ban | Permit the banning of users via ChanServ's /CHANSERV BAN | 5 |
BanMe | Permits you to...ban yourself! (through /CHANSERV BAN) | 5 |
Clear | Permit the use of the Clear command (/CHANSERV CLEAR) | Disabled |
GetKey | Permit a user to get the channel key of a +k channel with /CHANSERV GETKEY | 5 |
HalfOp | Permit the use of the /CHANSERV HALFOP and /CHANSERV DEHALFOP commands on others. | 5 |
HalfOpMe | Permit the use of /CHANSERV HALFOP and /CHANSERV DEHALFOP on yourself. | 4 |
Info | Permit the viewing of the output of all info (/CHANSERV INFO #channel ALL) instead of basic info only. | Disabled |
Kick | Permits use of /CHANSERV KICK on others | 5 |
KickMe | Permits use of /CHANSERV KICK on yourself | 5 |
Invite | Allows to INVITE yourself in the channel with /CHANSERV INVITE #channel | 5 |
OpDeop | Permits use of /CHANSERV OP and /CHANSERV DEOP on others | 5 |
OpDeopMe | Permits use of /CHANSERV OP and /CHANSERV DEOP on yourself | 5 |
Protect | Permits use of /CHANSERV PROTECT and /CHANSERV DEPROTECT on others | Disabled |
ProtectMe | Permits use of /CHANSERV PROTECT and /CHANSERV DEPROTECT on yourself | 10 |
Topic | Permits changing of the channel topic. | Disabled |
Unban | Permits removing all bans that would prevent you from entering the channel with /CHANSERV UNBAN #channel | 5 |
Voice | Permits use of /CHANSERV VOICE and /CHANSERV DEVOICE on others | 5 |
VoiceMe | Permits use of /CHANSERV VOICE and /CHANSERV DEVOICE on yourself | 3 |
Memo | Permits the reading of channel memos sent to the channel via MemoServ (/MEMOSERV READ #channel) | 10 |
Assign | Permits the (un)assigning of a Services Bot | Disabled |
BadWords | Permit the manipulation of the Badwords list of a Services Bot (useless unless you have one assigned to your channel) | 10 |
Fantasia | Permit the use of 'fantasy commands', such as !op, !kick, etc. (Proper access is still required for some functions, like user statuses, kicks and bans) | 3 |
Greet | Users this level and above will have the greet message they set with NickServ displayed by a Services Bot when they join (useless without a bot assigned to your channel) | 5 |
NoKick | Users this level and above will *not* be affected by any bot kick triggers, like flood, badwords, etc | 1 |
Say | Permits the use of /BOTSERV SAY and /BOTSERV ACT, to talk through a Services Bot (useless without a bot assigned to your channel) | 5 |
Additional LEVELS options
Disable the given option, restricting it to founder only
/CHANSERV LEVELS #channel DISABLE option
Reset all the levels on options to their default settings (which are shown in the above table):
/CHANSERV LEVELS #channel RESET
Additional ACCESS options
Delete a user from the access list (this will reset them to level 0)
/CHANSERV ACCESS #channel DEL nickname
For instance to revoke DennisOpper's access level on channel #filmfreaks, type:
/CHANSERV ACCESS #filmfreaks DEL DennisOpper
Note: You may also use the entry number from the LIST command in place of a nick. This will let you provide a list of numbers for mass removal
/CHANSERV ACCESS #channel DEL 1-3,5,13
You can also first view the list of affected nicknames to be sure you have the right numbers with:
/CHANSERV ACCESS #channel LIST 1-3,5,13
Wipe out the entire access list in one go
/CHANSERV ACCESS #channel CLEAR
Secure Combinations
Other useful options to use in conjunction with LEVELS:
Secure Ops
/CHANSERV SET #channel SECUREOPS ON
Users who are not on the channel's ACCESS list, will not be allowed chanop status.
Secure Channel
/CHANSERV SET #channel SECURE [OFF|ON]
This setting is a tricky one.. /CHANSERV HELP SET SECURE describes it as follows:
Enables or disables ChanServ's security features for a channel. When SECURE is set, only users who have registered their nicknames with NickServ and IDENTIFY'd with their password will be given access to the channel as controlled by the access list.
However, it does not mention how NickServ's ACCESS and SECURE settings are in effect as well.
For your NickServ account you can add your current hostname to the ACCESS list (/NICKSERV ACCESS ADD *@*.your.host). This will automatically semi-identify you for your nickname if you connect from a host on your NickServ Access list. If your NickServ SECURE setting is OFF (/NICKSERV SET SECURE OFF), it will even grant you access to chanserv commands based on the access level of the nick you are using. But, only when the channel's SECURE setting is set to OFF.
So, here's a quick overview of what is possible with /CHANSERV SET #channel SECURE OFF:
- Your current hostname appears on the NICKSERV ACCESS list of your current nickname.
- Your current nickname has NICKSERV SECURE set to OFF
- The channel's CHANSERV SECURE setting is set to OFF
- Your nickname is on the channels CHANSERV ACCESS list with a level greater or equal to the OPDEOPME LEVEL
- You can use /CHANSERV OP #channel now
But with /CHANSERV SET #channel SECURE ON:
- Your current hostname appears on the NICKSERV ACCESS list of your current nickname.
- Your current nickname has NICKSERV SECURE set to OFF
- The channel's CHANSERV SECURE setting is set to ON
- Your nickname is on the channels CHANSERV ACCESS list with a level greater or equal to the OPDEOPME LEVEL
- You can not use /CHANSERV OP #channel now
The only way you can use the CHANSERV commands when /CHANSERV SET #channel SECURE ON is in effect, is by being identified for your registered nickname through NickServ.
Restricted channel
/CHANSERV SET #channel RESTRICTED [OFF|ON]
This setting is a bit tricky too (and seems slightly broken..)
/CHANSERV HELP SET RESTRICTED
describes it as follows:
Enables or disables the restricted access option for a channel. When restricted access is set, users who would normally be disallowed from having channel operator privileges (users with negative access levels and, if secure ops is set, users not on the access list) will instead be kicked and banned from the channel.
This would mean that if you only have RESTRICTED ON and SECURE/SECUREOPS are OFF, anyone that is not on the accesslist with a negative level (-1), should be allowed in the channel. However, in practise it seems to disregard the SECUREOPS setting and disallow everyone who is NOT on the ChanServ Access list at all.
So, effectively if you use:
/CHANSERV SET #channel RESTRICTED ON
you will automatically be kick-banned if you are not on the access list. You will also be automatically kick-banned if you are on the access list, but weren't (semi-)identified for your nickname upon joining the channel. So you need to make sure you are identified before you join a restricted channel.
If ChanServ SECURE is also set to ON for the restricted channel, users have to be identified for their nicks through NickServ before entering the channel, otherwise they'll be kickbanned as well. If CHANSERV SECURE is off, they will also be allowed if their host matches their NickServ Access list and NickServ Secure setting.
About semi-identified
You are semi-identified when:
- You have a registered nickname
- You are NOT identified for that nickname through /NICKSERV IDENTIFY
- Your NickServ SECURE setting is set to OFF (please note that this by default is set to ON)
- You are connected from a host that matches the hostmask in your /NICKSERV ACCESS LIST
Channels will only grant you the appropriate rights if its ChanServ SECURE setting is OFF. If the channel's ChanServ SECURE is set to ON, it will require users to be identified for their nicknames before regarding them as the registered user.