How do clients get permissions? How are they assigned?
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++
The way a client receives his permissions is determined through a 5 layer system. Each layer can overwrite permissions from the previous layer. If a permission is not granted on any of these 5 layers, it will be assumed to be of zero or false value. These are the 5 Layers:
Tier 1: Server Groups
Tier 2: Client Specific Permissions
Tier 3: Channel Specific Permissions
Tier 4: Channel Groups
Tier 5: Channel and Client Specific Permissions
Example:
You are in the "Guest" server group (Tier 1) which has the permission b_channel_modify_name set to false. But you are also a "Channel Admin" (Tier 4) and a channel admin has b_channel_modify_name set to true. Since the channel group is in a higher tier than the server group, in the end you *can* modify your channels name (but not that of other channels where you are not channel admin).
Since Server Groups are the first Tier of permission layers, it is possible that they will be overwritten by a higher tier permission.
Since it is sometimes desirable to prevent Channel Groups (Tier 4) to overwrite permissions that you received through your Server Group there is the "Skip" flag. If a permission in either Server Group (Tier 1) or Client Specific Permissions (Tier 2) has the skip flag set, this permission will not be altered by any overlapping permission in the Channel Groups (Tier 4) or the Channel (Tier 3) layer.