Skip to content

docs(multiuser): add README documenting the plugin and its CLI flags#46

Merged
MudDev merged 1 commit into
mainfrom
docs/multiuser-readme
May 19, 2026
Merged

docs(multiuser): add README documenting the plugin and its CLI flags#46
MudDev merged 1 commit into
mainfrom
docs/multiuser-readme

Conversation

@MudDev
Copy link
Copy Markdown

@MudDev MudDev commented May 19, 2026

Summary

Adds plugins/disabled-Multiuser/README.md documenting the Multiuser plugin (public-gateway / multi-user proxy mode). The plugin has no documentation today; this PR fills that gap.

Why now

@mx5kevin's #42 correctly identified that this plugin needs docs — that observation was the valuable part of the PR. The README content in #42 had several factual errors (inverted default values, "edit the Python file" instructions, etc.) so it was closed, but the underlying gap remained. This PR is a corrected version.

In live testing this evening:

  • --multiuser-no-new-sites enabled produced no error — argparse silently ignored the enabled token because the flag is store_true. People will try to pass values; the README spells out that they shouldn't.
  • Enabling the plugin without --multiuser-local caused the local operator to see "This function (serverErrors) is disabled on this proxy!" on admin actions — a confusing UX that's expected behavior, and now documented.
  • The relationship to NoNewSites was unclear; the README now cross-references it as the simpler alternative for read-only gateways.

What the README covers

  • When to enable / disable the plugin (rename disabled-MultiuserMultiuser)
  • The admin vs. proxy-user distinction and how admin status is decided (users.json membership or --multiuser-local)
  • Both CLI flags with correct semantics:
    • --multiuser-local: every visitor is admin, users persisted to disk; "unsafe Ui functions" per the flag's own help text
    • --multiuser-no-new-sites: store_true, off by default (i.e. adding sites allowed by default), pass the flag bare with no value
    • epixnet.conf form for persistent configuration
    • Recommended combo for operators: --multiuser-local --multiuser-no-new-sites
  • How to log in as an existing master address from a clean session (via the userLoginForm websocket action)
  • Cross-reference to the newer NoNewSites plugin

Verification

  • Confirmed --multiuser-no-new-sites is store_true (MultiuserPlugin.py:276)
  • Confirmed admin check is not config.multiuser_local and self.user.master_address not in local_master_addresses (MultiuserPlugin.py:217)
  • Confirmed local_master_addresses is loaded from <data-dir>/private/users.json (MultiuserPlugin.py:19)
  • Confirmed userLoginForm action exists (MultiuserPlugin.py:197)
  • Markdown lint warnings (MD040) addressed by tagging code blocks as text

Credit

@mx5kevin in #42 for flagging the documentation gap.

The Multiuser plugin (public-gateway / multi-user proxy mode) has no
documentation. Operators turning it on hit several rough edges:

- `--multiuser-no-new-sites` is a store_true flag; people pass values
  like `enabled` which argparse silently ignores.
- Without `--multiuser-local`, the local operator becomes a regular
  proxy user and hits "This function (...) is disabled on this proxy!"
  on admin-only actions.
- The newer `NoNewSites` plugin overlaps in purpose but isn't
  cross-referenced anywhere.

Add a README covering: when to enable the plugin, both CLI flags with
correct semantics (default values, boolean nature, conf-file form), the
admin vs. proxy-user distinction, how to log in as an existing master
address, and a pointer to NoNewSites as the simpler alternative.

Credit: @mx5kevin (PR #42) flagged that the plugin needed documentation.
@MudDev MudDev merged commit 9a0da6b into main May 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant