mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-25 13:29:29 +01:00
doc/Admin.md: add introduction to user-capabilities with demonstration
This commit is contained in:
parent
d0b30fbf1a
commit
eb2e1919ec
49
doc/Admin.md
49
doc/Admin.md
@ -12,6 +12,7 @@
|
|||||||
* [User metadata list](#user-metadata-list)
|
* [User metadata list](#user-metadata-list)
|
||||||
* [Listing users](#listing-users)
|
* [Listing users](#listing-users)
|
||||||
* [User capabilities](#user-capabilities)
|
* [User capabilities](#user-capabilities)
|
||||||
|
* [Introduction](#introduction)
|
||||||
* [cap](#cap)
|
* [cap](#cap)
|
||||||
* [Listing capabilities](#listing-capabilities)
|
* [Listing capabilities](#listing-capabilities)
|
||||||
* [Grouping capabilities](#grouping-capabilities)
|
* [Grouping capabilities](#grouping-capabilities)
|
||||||
@ -146,6 +147,54 @@ list all users from all channels, including global users.
|
|||||||
## User capabilities
|
## User capabilities
|
||||||
PBot uses a user-capability system to control what users can and cannot do.
|
PBot uses a user-capability system to control what users can and cannot do.
|
||||||
|
|
||||||
|
### Introduction
|
||||||
|
|
||||||
|
For example, imagine a user named alice. alice has no capabilities granted yet.
|
||||||
|
She tries to use the [`ban`](#banmute) command:
|
||||||
|
|
||||||
|
<alice> !ban somebody
|
||||||
|
<PBot> The ban command requires the can-ban capability, which your user account does not have.
|
||||||
|
|
||||||
|
Suppose alice tries to grant herself the can-ban capability:
|
||||||
|
|
||||||
|
<alice> !my can-ban 1
|
||||||
|
<PBot> The can-ban metadata requires the can-modify-capabilities capability, which your user account does not have.
|
||||||
|
|
||||||
|
To grant her the `can-ban` capability, a user with the `can-userset` and `can-modifiy-capabilities` capabilities
|
||||||
|
can use the [`userset`](#userset) command:
|
||||||
|
|
||||||
|
<bob> !userset alice can-ban 1
|
||||||
|
|
||||||
|
Now alice can use the `ban` command.
|
||||||
|
|
||||||
|
User-capabilities can provide fine-grained permissions over various PBot functionality. For example,
|
||||||
|
consider the [`mode`](#mode) command. Channel operators can use their IRC client's `/mode` command to
|
||||||
|
set any channel modes, including any undesirable modes (such as +k). Suppose you'd prefer to limit
|
||||||
|
their modes to just a specific subset of all modes. You can do this with user-cabilities. To do so,
|
||||||
|
instead of making them channel operators you can make them PBot users and grant them specific PBot
|
||||||
|
user-capabilities.
|
||||||
|
|
||||||
|
First grant the user the `can-mode` capability so they can use the PBot [`mode`](#mode) command. Then grant them the specific
|
||||||
|
`can-mode-<flag>` capabilities. To allow them to set any modes without restriction, grant them the `can-mode-any`
|
||||||
|
capability.
|
||||||
|
|
||||||
|
See this demonstration:
|
||||||
|
|
||||||
|
<alice> !mode +b test
|
||||||
|
<PBot> The mode command requires the can-mode capability, which your user account does not have.
|
||||||
|
<bob> !userset alice can-mode 1
|
||||||
|
<alice> !mode +b test
|
||||||
|
<PBot> Your user account does not have the can-mode-b capability required to set this mode.
|
||||||
|
<bob> !userset alice can-mode-b 1
|
||||||
|
<alice> !mode +b test
|
||||||
|
* PBot sets mode +b test!*@*
|
||||||
|
<alice> !mode +k lol
|
||||||
|
<PBot> Your user account does not have the can-mode-k capability required to set this mode.
|
||||||
|
|
||||||
|
As you can see, user-capabilities can be very flexible and very powerful in configuring your
|
||||||
|
channel users. Check out [grouping capabilities](#grouping-capabilities) in the upcoming section
|
||||||
|
of this document, as well. Read on!
|
||||||
|
|
||||||
### cap
|
### cap
|
||||||
Use the `cap` command to list capabilities, to manage capability groups and to
|
Use the `cap` command to list capabilities, to manage capability groups and to
|
||||||
see what capabilities a user has.
|
see what capabilities a user has.
|
||||||
|
Loading…
Reference in New Issue
Block a user