User Levels

Overview

A User Level is a numeric value where higher values imply higher levels of access.  A value of zero indicates very restricted access.  Security Levels are popular on many classic BBS systems because they are simple to understand. However, this simplicity makes then unsuitable for systems with complicated security requirements.

Details

Ranges

A user level is a 32-bit signed integer with a range of about -2 billion to +2 billion.  This gives you over 4 billion unique security levels to assign to your users.  However, realistically you should restrict yourself to positive values in the range of 0 to 255.  Some external applications (e.g. games) require you to specify the user level when starting the application.  Many of these applications only support levels ranging from 0 to 255.

Level Names

You can assign a name to each level.  For example, suppose you decide on the following scheme:

You are free to use these numbers when defining the permissions for a resource -- but instead you should assign a name to each one.  You can then refer to the names instead of the numbers.  This allows you to change the numbering scheme without updating every security setting throughout the BBS system.

Level names must comply with the following conventions:

Given these restrictions, the names for the hypothetical scheme might be:

For example, when entering the minimum level needed to download a file, you can specify RegisteredUser instead of 20.

Expressions

Level names are available as constants when writing security expressions.