@@ -91,11 +91,13 @@ it easy to copy or link group definitions. You may use subdirectories:
9191a file `groups/teaching/networking.json` defines a group called
9292*teaching/networking*.
9393
94+
95+ ## Examples
96+
9497A typical group definition file looks like this:
9598
9699 {
97100 "op":[{"username":"jch","password":"1234"}],
98- "presenter":[{}],
99101 "allow-recording": true,
100102 "allow-subgroups": true
101103 }
@@ -105,20 +107,45 @@ password *1234*, empty username and password for presenters (ordinary
105107users with the right to enable their camera and microphone). The
106108`allow-recording` entry says that the operator is allowed to record videos
107109to disk, and the `allow-subgroups` entry says that subgroups will be
108- created automatically.
110+ created automatically. This particular group does not allow password
111+ login for ordinary users, and is suitable if you use invitations (see
112+ *Stateful Token* below) for ordinary users.
113+
114+ In order to allow password login for ordinary users, add a list of users
115+ as the entry `presenter`:
116+
117+ {
118+ "op": [{"username":"jch","password":"1234"}],
119+ "presenter": [{"username":"john", "password": "secret"}]
120+ }
121+
122+ If the group is to be publicly accessible, you may allow logins with any
123+ username and an empty password:
124+
125+ {
126+ "op": [{"username":"jch","password":"1234"}],
127+ "presenter": [{}],
128+ "public": true
129+ }
130+
131+ The empty dictionary `{}` is a wildcard entry: it matches any username and
132+ any password. Setting `public` causes the group to be displayed in the
133+ list of public groups on the landing page
134+
135+
136+ ## Reference
109137
110- More precisely, every group definition file contains a single JSON
111- directory (a list of entries between `{' and `}'). All fields are
112- optional, but unless you specify at least one user definition (`op`,
113- `presenter`, or `other`), nobody will be able to join the group. The
114- following fields are allowed:
138+ Every group definition file contains a single JSON directory (a list of
139+ entries between `{' and `}'). All fields are optional, but unless you
140+ specify at least one user definition (`op`, `presenter`, or `other`),
141+ nobody will be able to join the group. The following fields are allowed:
115142
116143 - `op`, `presenter`, `other`: each of these is an array of user
117144 definitions (see *Authorisation* below) and specifies the users allowed
118145 to connect respectively with operator privileges, with presenter
119146 privileges, and as passive listeners;
120147 - `authKeys`, `authServer` and `authPortal`: see *Authorisation* below;
121- - `public`: if true, then the group is visible on the landing page;
148+ - `public`: if true, then the group is listed on the landing page;
122149 - `displayName`: a human-friendly version of the group name;
123150 - `description`: a human-readable description of the group; this is
124151 displayed on the landing page for public groups;
0 commit comments