diff --git a/docs/configuration/acs.md b/docs/configuration/acs.md index eeab8e9c..dde55709 100644 --- a/docs/configuration/acs.md +++ b/docs/configuration/acs.md @@ -61,6 +61,7 @@ The following touch points exist in the system. Many more are planned: * Message conferences and areas * File base areas -* Menus within `menu.hjson`. See [menu.hjson](menu-hjson.md). +* Menus within `menu.hjson`. See [Menu HJSON](menu-hjson.md). + See the specific areas documentation for information on available ACS checks. diff --git a/docs/configuration/menu-hjson.md b/docs/configuration/menu-hjson.md index 4f932696..87cee85e 100644 --- a/docs/configuration/menu-hjson.md +++ b/docs/configuration/menu-hjson.md @@ -19,7 +19,7 @@ Below is a table of **common** menu entry members. These members apply to most e | Item | Description | |--------|--------------| | `desc` | A friendly description that can be found in places such as "Who's Online" or wherever the `%MD` MCI code is used. | -| `art` | An art file *spec*. See [General Art Information](docs/art/general.md). | +| `art` | An art file *spec*. See [General Art Information](/docs/art/general.md). | | `next` | Specifies the next menu entry to go to next. Can be explicit or an array of possibilites dependent on ACS. See **Flow Control** in the **ACS Checks** section below. If `next` is not supplied, the next menu is this menus parent. | | `prompt` | Specifies a prompt, by name, to use along with this menu. Prompts are configured in `prompt.hjson`. | | `submit` | Defines a submit handler when using `prompt`. @@ -70,7 +70,7 @@ Now let's look at `matrix`, the `next` entry from `telnetConnected`: ```hjson matrix: { - art: matrix + art: MATRIX desc: Login Matrix form: { 0: { @@ -104,21 +104,22 @@ matrix: { ] } } + + // + // If we wanted, we could declare a "HM" MCI key block here. + // This would allow a horizontal matrix style when the matrix art + // loaded contained a %HM code. + // } } } ``` -In the above entry, you'll notice `form`. This defines a form(s) object. In this case, a single form -by ID of `0`. The system is then told to use a block only when the resulting art provides a `VM` -(*VerticalMenuView*) MCI entry. `VM1` is then setup to `submit` and start focused via `focus: true` -as well as have some menu entries ("login", "apply", ...) defined. We provide an `argName` for this -action as `matrixSubmit`. +In the above entry, you'll notice `form`. This defines a form(s) object. In this case, a single form by ID of `0`. The system is then told to use a block only when the resulting art provides a `VM` (*VerticalMenuView*) MCI entry. Some other bits about the form: -The `submit` object tells the system to attempt to apply provided match entries from any view ID (`*`). - Upon submit, the first match will be executed. For example, if the user selects "login", the first entry - with a value of `{ matrixSubmit: 0 }` will match causing `action` of `@menu:login` to be executed (go - to `login` menu). +* `VM1` is then setup to `submit` and start focused via `focus: true` as well as have some menu entries ("login", "apply", ...) defined. We provide an `argName` of `matrixSubmit` for this element view. +* The `submit` object tells the system to attempt to apply provided match entries from any view ID (`*`). +* Upon submit, the first match will be executed. For example, if the user selects "login", the first entry with a value of `{ matrixSubmit: 0 }` will match (due to 0 being the first index in the list and `matrixSubmit` being the arg name in question) causing `action` of `@menu:login` to be executed (go to `login` menu). ## ACS Checks Menu modules can check user ACS in order to restrict areas and perform flow control. See [ACS](acs.md) for available ACS syntax. @@ -150,4 +151,23 @@ login: { } ] } -``` \ No newline at end of file +``` + +### Art Asset Selection +Another area in which you can apply ACS in a menu is art asset specs. + +```hjson +someMenu: { + desc: Neato Dorito + art: [ + { + acs: GM[couriers] + art: COURIERINFO + } + { + // show ie: EVERYONEELSE.ANS to everyone else + art: EVERYONEELSE + } + ] +} +``` diff --git a/docs/filebase/acs.md b/docs/filebase/acs.md index 50527928..63884c71 100644 --- a/docs/filebase/acs.md +++ b/docs/filebase/acs.md @@ -2,8 +2,8 @@ layout: page title: ACS --- - -If no `acs` block is supplied in a file area definition, the following defaults apply to an area: +## File Base ACS +[ACS Codes](/docs/configuration/acs.md) may be used to control acess to File Base areas by specifying an `acs` string in a file area's definition. If no `acs` is supplied in a file area definition, the following defaults apply to an area: * `read` (list, download, etc.): `GM[users]` * `write` (upload): `GM[sysops]`