Permissions

Documentation is for the weak!

Ayana offers a advanced permission system putting you in control of how Ayana will function on your server. There are some key things you need to understand so you can setup your perms correctly. So please take the time to read this page and understand how permissions work. It is well worth the time.

Permission Nodes

Permission nodes represent Ayana commands and features that you can control. Each permission node can be in one of three states per permission level. These states are:

  • Granted: The permission node is in the granted(allowed) state
  • Revoked: The permission node is in the revoked(denied) state
  • Neutral: The permission node hasn’t been overridden

Neutral

Permission nodes that haven’t been Granted or Revoked on a given permission level are in their neutral state. Such permission nodes will not affect, or override other permission levels.

Permission Levels

Permission levels define where permission nodes take effect on. This allows you to deny a permission for the entire server but allow it for certain users. The permission level order from least specific to most specific is as follows:

  • Server: Affects the entire server
  • Channel: Affects all users executing commands in a specific channel
  • Role: Affects all users possessing a specific role
  • User: Affects a specific user

Advanced Levels

There are also two advanced permission levels that exist, but are rarely used. You will probably not need these two. These two levels are the most specific levels in Ayana.

  • Role Channel: Affects all users possessing a specific role executing commands in a specific channel
  • User Channel: Affects a specific user in a specific channel

Permission Inheritance

Each permission level in a non-neutral state overrides all permission levels above it, (i.e: Channel overrides Server; User overrides Role, Channel and Server)

If a permission node is in it's neutral state on all permission levels, then the permission nodes default will be used. A permission nodes default is defined by the Developers of Ayana, these defaults are setup to be secure, safe, and not give away unnecessary permissions. Some examples of this are:

  • The guild.ban permission is defaulted to revoked, so unless a Server Administrator grants this permission, nobody can use the ban command.
  • The music.all permission is defaulted to granted, so anyone can use Ayana's music system