Difference between revisions of "IRC Advanced Privilege Control Model"

From IRC Wiki
Jump to navigation Jump to search
Line 26: Line 26:


If a user transitions into the '''admin''' role, she will also receive the permissions of the '''ircop''' role because of `privset::inherits`.
If a user transitions into the '''admin''' role, she will also receive the permissions of the '''ircop''' role because of `privset::inherits`.
=== See Also ===
* [IRCd Comparison] (including a list of IRCds implementing the IRC Advanced Privilege Control Model).

Revision as of 19:32, 18 September 2012

The IRC Advanced Privilege Control Model is the permissions control model created by members of the IRCv3 working group for IRCv3 IRC daemons. It replaces the permissions model used by traditional IRCds.

Overview

A few IRCd projects involved in the IRCv3 working group decided that a new permissions model was needed. This permissions model was implemented in Charybdis 3.0 and InspIRCd 1.2. The full permissions model is still a work in progress, but covers:

  • Privilege set declaration
  • Privilege set transition (such as from 'user' role to 'ircop' role or 'admin' role) via:
    • /OPER command
    • /CHALLENGE command (charybdis extension)
    • Connection class
  • Naming suggestions for common permissions and namespaces

Example

This example assumes Charybdis-style config syntax, InspIRCd config syntax will be different, but similar (mainly XML-like).

privset "ircop" {
    flags = oper:kill, oper:local_kill, oper:rehash, oper:override;
};
   
privset "admin" {
    inherits = "ircop";
    flags = oper:die, oper:restart;
};

If a user transitions into the admin role, she will also receive the permissions of the ircop role because of `privset::inherits`.

See Also

  • [IRCd Comparison] (including a list of IRCds implementing the IRC Advanced Privilege Control Model).