Tvheadend verifies access by scanning through all enabled access control
entries in sequence, from the top of the list to the bottom. The permission
-flags, streaming profiles, DVR config profiles, channel tags, channel
-number ranges are combined for all matching access entries if allowed using
-the change flag. If the parameter is empty (permission
-flags, all types of profiles, channel tags and ranges) in an access
-control entry and the parameter change flag is turned on,
-the parameter (value, list or range) is cleared (unset).
+flags, streaming profiles, DVR config profiles, channel tags, and channel
+number ranges are combined for all matching access entries. You can
+control which parameters are merged (on a per-entry basis), see
+*Change parameters* [below](#items) for details.
-An access entry is said to match if the username matches and the IP
-source address of the requesting peer is within the prefix. There is also
-anonymous access, if the user is set to asterisk. Only network prefix is
-matched then.
+An access entry is said to match if the username and the IP source
+address of the requesting peer is within the prefix (*Allowed networks*).
+Wildcard ([anonymous](#anonymous-access)) accounts are matched using the
+prefix only.
-*The order of entries is really important!* It is recommended to put the
-wildcards on top of the entries and the special permissions to the bottom.
+*The order of entries is **extremely** important!* It's recommended
+that you put the wildcard (asterisk `*`) accounts at top and all other
+accounts (with special permissions) at the bottom.

####Example
-This is an example of a limited user account entry.
+This is an example of a limited user entry.

-Remember to also create a password entry for the user in the
-*[Passwords](class/passwd)* tab!
+Remember to also add a password entry in the
+*[Passwords](class/passwd)* tab - not required for wildcard accounts.
**Tips**:
* Be as limiting as possible especially when making Tvheadend available
--- /dev/null
+:
+
+Allows you to control which parameters are merged. If the
+*Change parameters* flag is turned on and a parameter
+(permission flags, all types of profiles, channel tags and ranges)
+for an entry is not set the parameter (value, list or range) is cleared
+(unset). This allows the previous/next matching entry in the sequence to set
+it.
+
+For example, say you have a wildcard account with the theme set to Gray,
+and an admin account with the Blue theme. Unchecking the theme checkbox
+for the admin user would mean that the theme from the last matching
+entry (which in this case would be the wildcard account) applies instead.
+
+Option | Description/Properties
+---------------------------|---------------------------
+**Rights** | *Streaming*, *Web interface*, *Video recorder* (DVR), *Admin* and *Anonymize HTSP access*.
+**Channel number range** | *Minimal channel number* and *Maximal channel number*.
+**Channel tags** | *Exclude channel tags* and *Channel tags*.
+**DVR configurations** | *DVR configuration profiles*.
+**Streaming profiles** | *Streaming profiles*.
+**Connection limits** | *Connection limit type* and *Limit connections*.
+**Language** | *Language*.
+**Web interface language** | *Web interface language*.
+**Theme** | *Theme*.
+**User interface level** | *User interface level*.
+
+The above table displays the *Change parameters* option name and the fields that it
+applies to, as shown in add/edit dialog(s).
},
{
.id = "change_chrange",
- .name = N_("Channel range"),
+ .name = N_("Channel number range"),
.off = offsetof(access_entry_t, ae_change_chrange),
},
{
PROP_DOC(connection_limit)
PROP_DOC(persistent_viewlevel)
PROP_DOC(streaming_profile)
+PROP_DOC(change_parameters)
const idclass_t access_entry_class = {
.ic_class = "access",
.islist = 1,
.id = "change",
.name = N_("Change parameters"),
- .desc = N_("Specify the parameters to be changed."),
+ .desc = N_("Specify the parameters to be changed. See Help for details."),
+ .doc = prop_doc_change_parameters,
.list = access_entry_class_change_enum,
.get = access_entry_class_change_get,
.set = access_entry_class_change_set,
.id = "streaming",
.name = N_("Streaming"),
.desc = N_("Streaming flags, allow/disallow HTTP streaming, "
- "advanced HTTP streming (e.g, direct service or mux links), "
+ "advanced HTTP streaming (e.g, direct service or mux links), "
"HTSP protocol streaming (e.g, Kodi (via pvr.hts) or Movian."),
.list = access_entry_class_streaming_enum,
.get = access_entry_class_streaming_get,