aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_admin_shell.lua
Commit message (Collapse)AuthorAgeFilesLines
* mod_admin_shell: Refactor help to data structures for extensibilityMatthew Wild2023-11-291-157/+239
| | | | | This makes it easier for commands added by other modules to add to the help output, for example.
* mod_admin_shell: Fix lint [luacheck]Kim Alvefur2023-11-211-10/+8
|
* mod_admin_shell: Add debug:async() command to show blocked async runnersMatthew Wild2023-11-211-0/+65
|
* mod_admin_shell: Make 'Role' column dynamically sizedKim Alvefur2023-10-261-1/+1
| | | | | | | Some of the new roles don't quite fit nicely into 4 characters (excluding ellipsis). Given the ability to dynamically add additional roles from the config and possibly from modules, it seems better to just make it a relative size since we can't know how long they will be.
* core, plugins: Split prosody:user role into prosody:{guest,registered,member}Matthew Wild2023-06-291-29/+11
| | | | | | | This gives us more granular control over different types of user account. Accounts registered by IBR get assigned prosody:registered by default, while accounts provisioned by an admin (e.g. via prosodyctl shell) will receive prosody:member by default.
* mod_admin_shell: Use new serialize preset to simplify default configKim Alvefur2023-06-091-2/+5
| | | | Two pairs replaced by one. Blame lua-format for the line diff delta.
* mod_admin_shell: Warn when (un-)loading module would be undone by restartKim Alvefur2023-06-061-0/+12
| | | | Reminder to update the configuration if the change is to be permanent.
* mod_admin_shell: Show internal URL where different from externalKim Alvefur2023-05-281-4/+8
|
* mod_admin_shell: Show internal URL in addition to external in http:listKim Alvefur2023-05-241-5/+8
| | | | To help with configuring reverse proxies.
* mod_admin_shell: Allow logging HTTP events with debug:logevents("http")Kim Alvefur2023-05-141-0/+3
| | | | | Mirroring debug:events("http"), and to replace the "Firing event: GET /" log lines in net.http.server
* mod_admin_shell: Allow logging global events with debug:logevents("*")Kim Alvefur2023-05-141-1/+5
| | | | Missing feature. It should behave like debug:events()
* mod_admin_shell: Refactor 'cert' columnKim Alvefur2023-04-301-4/+12
| | | | | | | | | | | | | | | | Removes some dead code and hopefully simplifies a bit. There's a tree of possibilities with the two tri-state status properties, something like chain: * nil -- cert validation disabled? * invalid -- something wrong with the chain (including ee cert) * valid -- chain ok cert: * nil -- incomplete validation?? * invalid -- mismatched names or such * valid -- all good!
* Merge 0.12->trunkKim Alvefur2023-04-191-1/+1
|\
| * mod_admin_shell: Fix display of remote cert status when expired etcKim Alvefur2023-04-061-1/+1
| | | | | | | | | | Looks like autocomplete unhelpfully capitalized this word, but it's lowercase where it is set in mod_s2s_auth_certs
* | mod_admin_shell: Use same wildcard matching in other s2s commandKim Alvefur2023-04-101-6/+5
| | | | | | | | Consistency is nice.
* | mod_admin_shell: Factor apart wildcard matching into function for reuseKim Alvefur2023-04-101-14/+18
| | | | | | | | Applying this for s2s:close[all]() would also be nice.
* | mod_admin_shell: Add config:set([host,] key, value) because why notKim Alvefur2023-04-081-0/+8
| | | | | | | | | | | | | | | | | | We had config:get() but not this. > <MattJ> Yeah, why did we never implement that? Handy if you want to quickly try out settings without reloading the whole config.
* | mod_admin_shell: Allow wildcard matches like s2s:show("*.example.com")Kim Alvefur2023-04-081-1/+13
| | | | | | | | | | E.g. if you want to show connections to/from a domain, including its subdomains, this is handy.
* | mod_admin_shell: Allow "*" as substitute for 'nil' for easier CLI usageKim Alvefur2023-04-071-2/+2
| | | | | | | | | | | | | | | | Since prosodyctl shell with additional arguments assumes the first two are a section:command() and any following arguments are strings, passing a bare 'nil' is not possible. In order to avoid delving into this rabbit hole, instead produce a token that alone is not really a legal JID for use as wildcard.
* | mod_admin_shell: Make IP column thinner if IPv6 is disabledKim Alvefur2023-04-071-1/+1
| | | | | | | | | | | | | | IPv6 addresses can be pretty long, so if they can be more compact, that's nice. But nobody would disable IPv6, would they?
* | mod_admin_shell: Make default column width 1 partKim Alvefur2023-04-071-1/+1
| | | | | | | | | | These gets used for usernames, resources and other random session fields that don't have a column definition in `available_columns`
* | mod_admin_shell: Fix attempt to compare number with stringKim Alvefur2023-04-071-1/+1
| | | | | | | | Missed the # in 93c1590b5951
* | mod_admin_shell: Dynamically size JIDs and hostsKim Alvefur2023-04-071-4/+4
| | | | | | | | Reasoning: a hostname is one part, a JID is 3 parts.
* | mod_admin_shell: More dynamic widths calculationsKim Alvefur2023-04-071-3/+14
| |
* | mod_admin_shell: Calculate widths of columns from example valuesKim Alvefur2023-04-061-12/+19
| | | | | | | | | | Harder to accidentally count wrong if Lua is doing the counting on a plausible input.
* | mod_admin_shell: Strip 'prosody:' prefix to allow narrower Role columnKim Alvefur2023-04-021-3/+4
| |
* | mod_admin_shell: Allow matching on host or bare JID in c2s:showKim Alvefur2023-03-311-2/+2
| | | | | | | | | | Only supporting exact match on full JID isn't helpful if you want to list sessions per host or user.
* | core.usermanager: Correct formatting of not implemented errorKim Alvefur2023-03-261-1/+1
| | | | | | | | Spaces, no hyphen, apparently.
* | mod_admin_shell: Enable user after creation with roleKim Alvefur2023-03-261-0/+5
| | | | | | | | | | Fixes that otherwise the user was created in a disabled state and left as such.
* | mod_admin_shell: Simplify user creation when no role givenKim Alvefur2023-03-261-8/+16
| | | | | | | | | | | | Idea here is to prevent a user from being created with the default role if a different role was given, but that dance wouldn't be needed if no role is provided.
* | plugins: Prefix module imports with prosody namespaceKim Alvefur2023-03-241-29/+29
| |
* | mod_admin_shell: Limit module dependency listings to loaded on current hostKim Alvefur2023-03-101-2/+9
| | | | | | | | | | | | E.g. module:info("http") with many http modules loaded would show a lot of duplication, as each module would be listed for each host, even if not actually enabled on that host.
* | mod_admin_shell: Show reverse dependencies in module:info()Kim Alvefur2023-03-051-0/+6
| | | | | | | | Why was this module loaded? Now you can find out!
* | mod_admin_shell: Add commands to disable and enable accountsKim Alvefur2023-02-231-0/+32
| | | | | | | | First proper UI to enable/disable, allowing it to be tested.
* | Merge 0.12->trunkKim Alvefur2023-02-161-0/+1
|\|
| * mod_admin_socket: Return error on unhandled input to prevent apparent freezeKim Alvefur2023-02-161-0/+1
| | | | | | | | | | | | When mod_admin_socket is loaded without mod_admin_shell, attempt to use `prosodyctl shell` will appear to freeze after any input, since no response is returned.
* | mod_admin_shell: Match substring in muc:affiliations() like muc:occupants()Kim Alvefur2023-01-301-1/+1
| | | | | | | | Maybe one day we'll get consistent filtering semantics everywhere.
* | mod_admin_shell: Sort MUC users by relation and JIDKim Alvefur2023-01-291-18/+51
| | | | | | | | Suggested by MattJ, our resident UI expert :)
* | mod_admin_shell: Make Role and Affiliation columns the same width for aestheticsKim Alvefur2023-01-291-2/+2
| | | | | | | | | | The length of the title "Affiliation" made them both close enough that it looked off.
* | mod_admin_shell: Use tables to present MUC usersKim Alvefur2023-01-291-2/+18
| | | | | | | | Tables are awesome!
* | mod_admin_shell: Factor out room retrieval into common functionKim Alvefur2023-01-291-18/+18
| | | | | | | | Justification: See diffstat
* | mod_admin_shell: Add muc:affiliations(room) command to list membershipsKim Alvefur2023-01-291-0/+28
| | | | | | | | | | Easier than going trough muc:room():each_affiliation() since you have to do fiddly things to reach the print() function.
* | mod_admin_shell: Add muc:occupants(room) command to list occupantsKim Alvefur2023-01-291-1/+30
| | | | | | | | | | Easier than going trough muc:room():each_occupant() since you have to do fiddly things to reach the print() function.
* | Merge 0.12->trunkKim Alvefur2022-10-241-1/+5
|\|
| * mod_admin_shell: Ensure available connection for column 'secure'Kim Alvefur2022-10-231-1/+1
| | | | | | | | Similar to #1777
| * mod_admin_shell: Ensure connection exists to get port from (fixes #1777)Kim Alvefur2022-10-231-1/+5
| |
* | mod_admin_shell: Fix display of session without role (thanks Link Mauve)Kim Alvefur2022-09-231-1/+1
| | | | | | | | This can happen to sessions before they are assigned a role
* | mod_admin_shell: Rename variable to avoid confusion with global functionKim Alvefur2022-08-251-7/+7
| | | | | | | | For luacheck, but it doesn't actually complain about this right now
* | mod_admin_shell: Fix output from user:roles()Kim Alvefur2022-08-251-0/+1
| | | | | | | | | | It used _G.print instead of the shell session print, which would silently write to stdout
* | mod_admin_shell: Ensure account has role before it is usableKim Alvefur2022-08-181-8/+16
| | | | | | | | | | | | | | By creating the account first without a password it can't be used until the role has set. This is most important for restricted accounts, as a failure to set the role would lead to the account having more privileges than indented.