Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
access:requirements [2011/11/12 01:34] – created digitalmanaccess:requirements [2018/10/25 14:36] – New ARS keywords: PETSCII, COLS, ROWS, TERM digital man
Line 1: Line 1:
 ====== Access Requirements ====== ====== Access Requirements ======
  
-ARS stands for Access Requirement Strings. Access requirement strings are used +Access Requirement Strings (ARS) are used to specify the requirements of a specific Synchronet user account in order to have access to specific areas or functions of a Synchronet BBS. 
-to specify the requirements of a user to have access to features/sections of a + 
-Synchronet BBS. The string can consist entirely of English keywords and+===== Overview ===== 
 + 
 +You will find in [[util:SCFG]] and other Synchronet [[:config:|configuration]] files, places where the sysop may specify requirements to access a specific area or feature of the BBS. Usually these items will have ARS (Access Requirement String) or just "Requirements" as part of the name. 
 + 
 +Most ''Access Requirements'' are "default allow", meaning, if there are no requirements specified (i.e. the requirement string is blank), then the default behavior is **allow** access to that specific area/function to //any// user. 
 + 
 +Some ''Requirement'' strings are "default deny", meaning, if there are no requirements specified (i.e. the requirement string is blank), then no user will match that requirement. Examples of "default deny" requirements: 
 + 
 +  * Operator Requirements 
 +  * Exemption Requirements 
 +  * Moderated Posting User 
 +  * Pre-pack QWK Requirements 
 + 
 +===== Configuration ===== 
 + 
 +[[util:SCFG]] has an interactive ''Requirements'' dialog screen which allows easy addition or clearing of the most common requirement parameters. 
 + 
 +<code> 
 +╔══════════════════════════════════════════════════════════╗ 
 +║                  Main Group Requirements                 ║ 
 +╠══════════════════════════════════════════════════════════╣ 
 +║ │Requirement String ()                                   ║ 
 +║ │Clear Requirements                                      ║ 
 +║ │Set Required Level                                      ║ 
 +║ │Set Required Flag                                       ║ 
 +║ │Set Required Age                                        ║ 
 +║ │Set Required Sex                                        ║ 
 +║ │Set Required Connect Rate                               ║ 
 +║ │Set Required Post/Call Ratio (percentage)               ║ 
 +║ │Set Required Number of Credits                          ║ 
 +║ │Set Required Upload/Download Byte Ratio (percentage)    ║ 
 +║ │Set Required Upload/Download File Ratio (percentage)    ║ 
 +║ │Set Required Time of Day                                ║ 
 +║ │Set Required Day of Week                                ║ 
 +║ │Set Required Node Number                                ║ 
 +║ │Set Required User Number                                ║ 
 +║ │Set Required Time Remaining                             ║ 
 +║ │Set Required Days Till Expiration                       ║ 
 +╚══════════════════════════════════════════════════════════╝ 
 +</code> 
 + 
 +From this dialog screen, you can edit the Requirement String directly, or use the additional menu options to add the most common requirement parameters (and values) or clear the requirement string. 
 + 
 +===== Syntax ===== 
 + 
 +Access Requirement Strings can consist entirely of English keywords and
 numbers or use short-hand symbols to fit a large number of security numbers or use short-hand symbols to fit a large number of security
 requirements into the limited space allowed for access requirement requirements into the limited space allowed for access requirement
Line 11: Line 56:
  
 <code> <code>
-usage: [not] [parm] [not] [equal] <value> [or] [and] [...]+usage: [not] [param] [not] [equal] <value> [or] [and] [...]
  
 where: not      is the word "NOT" or the symbol '!' to specify reverse logic where: not      is the word "NOT" or the symbol '!' to specify reverse logic
-       parm     is one of any keywords (or short-hand symbols) that specifies+       param    is one of any keywords (or short-hand symbols) that specifies
                 a specific required parameter (default is LEVEL)                 a specific required parameter (default is LEVEL)
        equal    is the word "EQUAL", "EQUALS", the words "EQUAL TO", or the        equal    is the word "EQUAL", "EQUALS", the words "EQUAL TO", or the
Line 25: Line 70:
                 be met to match the requirement                 be met to match the requirement
 </code> </code>
 +
 +==== Logic Operators ====
 +Logic operators may exist between one or more Boolean or Value Parameters. When no logic operator is specified, the default logic requirement is GREATER_OR_EQUAL and when multiple parameters are specified, ''AND'' (i.e. all the specified parameters must be evaluated to a //TRUE// condition).
 +
 +^ Keyword      Symbol  ^Description  ^
 +|AND       |  & |More than one requirement (optional) |
 +|NOT       |  ! |Logical negation (e.g. NOT EQUAL) |
 +|EQUAL       |  = |Equality required |
 +|OR       |  %%|%% |Either of two or more parameters is required |
 +|              (       |Begin nested requirement|
 +|              )       |End nested requirement|
 +
 +==== Boolean Parameters ====
 +
 +Boolean parameters are evaluated as //true// or //false// without any specified value for comparison.
 +
 +^Keyword      ^Symbol ^Description  ^
 +|ACTIVE               | User has an active account (not marked DELETED or INACTIVE) |
 +|ANSI       |  $[ | User is using an ANSI terminal |
 +|PETSCII      |         | User is using a PETSCII terminal |
 +|DELETED      |         | User account is marked DELETED |
 +|DOS       |         | BBS is running on MS-DOS |
 +|EXPERT       | | User is in expert menu mode |
 +|GUEST        |         | User has the ''G'' (Guest) [[restrictions|restriction]] |
 +|INACTIVE             | User account is marked INACTIVE |
 +|LINUX        |         | BBS is running on Linux |
 +|LOCAL        |  $G     | Local execution (no remote user) |
 +|OS2          | | BBS is running on OS/2 |
 +|QNODE        |         | User has the ''Q'' (QWK node) [[restrictions|restriction]] |
 +|QUIET       |         | User is in quiet mode |
 +|RIP       |  $* | User is connected with a RIP-compatible terminal |
 +|SYSOP       | | User has [[level]] 90+ or is a temporary sysop |
 +|WIN32        |         | BBS is running on Windows |
 +|WIP       |         | User is connected with a WIP-compatible terminal |
 +|UNIX       |         | BBS is running on a UNIX clone |
 +
 +==== Value Parameters ====
 +
 +Value parameters require a //value// (e.g. word or number) following the parameter keyword or symbol. This parameter is compared against the criteria of the system or the user using the current comparison logic.
 +
 +^Keyword      ^Symbol ^Description  ^
 +|AGE |$A |User's age (years since birthdate, 0-255)|
 +|BPS |$B |User's current connect rate (bits-per-second; Telnet, RLogin, and SSH connections will have a BPS value of 30000)|
 +|COLS                 |Terminal columns (e.g. 40 or 80+) |
 +|CREDIT |$C |User's number of credits in Kilobytes (0-65535)|
 +|DAY |$W |Day of the week (Sun, Mon, Tue, etc. or 0-6)|
 +|DIR |$J |Current file directory (Internal code or 1-65535)|
 +|DLS            |       |Total number of files downloaded by user|
 +|DLK            |       |Total number of kilobytes in files downloaded by user|
 +|DLM            |       |Total number of megabytes in files downloaded by user|
 +|EXEMPT |$X |[[Exemptions]] flag (A-Z)|
 +|EXPIRE |$E |Days till user account expires (0-65535)|
 +|FILE_CMDS | |Number of executed file menu commands (0-65535)|
 +|FLAG |$F |User's [[flags|flag]] (1-4) and (A-Z)|
 +|GROUP |$M |Current message group (1-65535)|
 +|HOST                 |Client hostname|
 +|IP                   |Client IP address|
 +|LASTON |$Y |Days since last logon (0-65535)|
 +|LEVEL |$L |User's [[level]] (0-99)|
 +|LIB |$I |Current file library (1-65535)|
 +|LOCAL |$G |Logged on locally (no value argument)|
 +|LOGONS               |Number of user logons|
 +|MAIN_CMDS      | |Number of executed main menu commands (0-65535)|
 +|NODE |$N |Current node (1-250)|
 +|PCR |$P |User's post/call ratio (0-100)|
 +|PROT                 |Protocol in use (e.g. ''Telnet'', ''SSH'', ''HTTP'', etc.)|
 +|RANDOM |$Q |Random number between 0 and value argument (0-65535)|
 +|REST |$Z |[[Restrictions]] flag (A-Z)|
 +|ROWS                 |Terminal rows (e.g. 24)|
 +|SEX |$S |User's sex/gender (M or F)|
 +|SHELL          |       |User's selected command shell internal code|
 +|SUB |$H |Current message sub-board (Internal code or 1-65535)|
 +|TERM                 |Terminal type (string)|
 +|TIME |$T |Time of day (HH:MM, 0-23:59)|
 +|TLEFT |$R |User's time left online (minutes, 0-255)|
 +|TUSED |$O |User's time online this call (minutes, 0-255)|
 +|UDR |$K |User's upload/download ratio (0-100)|
 +|UDFR |$D |User's upload/download file ratio (0-100)|
 +|ULS            |       |Total number of files uploaded by user|
 +|ULK            |       |Total number of kilobytes in files uploaded by user|
 +|ULM            |       |Total number of megabytes in files uploaded by user|
 +|USER |$U |User's number (1-xxxx)|
 +
 +==== Examples ====
 +
 +FIXME - need to import from [[http://synchro.net/docs/security.html]]
  
 ===== See Also ===== ===== See Also =====