aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
Commit message (Collapse)AuthorAgeFilesLines
* mod_cloud_notify: Merge from prosody-modules@fc521fb5ffa0Matthew Wild3 days1-0/+653
| | | | | | Many thanks to Thilo Molitor and Kim Alvefur for their work on this module while it was in the community repository. It has been stable for some time, is widely used, and provides a feature that is important to most deployments.
* mod_invites: Add support for invites_page option to use external invites pagesMatthew Wild3 days1-0/+36
| | | | | | | | | | | This allows Prosody to easily provide friendly invitation links, even without setting up mod_invites_page (which is a community module). Admins can configure it to use a third-party deployment such as https://xmpp.link or they can deploy their own based on https://github.com/modernxmpp/easy-xmpp-invitation Alternatively they can just install mod_invites_page and this will all be handled automatically by that.
* mod_storage_sql: Remove the word 'error' from debug messagesKim Alvefur4 days1-2/+2
| | | | | | The word 'error' anywhere, especially in harmless debug messages, are too often interpreted as fatal errors my some users, so best avoid that word. These look too scary as it is, being tracebacks.
* mod_pubsub: Remove unused loop variable [luacheck]Kim Alvefur5 days1-1/+1
|
* mod_admin_shell: Remove redundant 'mod_' prefix from debug messageKim Alvefur5 days1-1/+1
|
* mod_admin_shell: Fix reporting origin module for commandsKim Alvefur5 days1-1/+1
| | | | | | | The field `_provided_by` comes from module:provides(), but these items comes from moduel:add_item(), which include the originating module as a 'source' field of the event. However, this is absent when items are retrieved at a later time than the initial event.
* mod_pubsub: Quiet down check for service adminKim Alvefur5 days1-1/+1
| | | | This produced a *lot* of noise, especially listing items.
* mod_pubsub: Limit node listing based on new ACL-aware metadata methodKim Alvefur5 days1-1/+4
| | | | | | | Ensures that nodes that one does not have metadata access to are hidden from view. This follows from the new ACL-aware method added in 3b357ab6b6eb.
* mod_admin_shell: user:password(): Support prompting for password if none givenMatthew Wild5 days1-6/+9
|
* mod_admin_shell: user:create(): Reject promise with error message on failureMatthew Wild5 days1-1/+1
|
* mod_admin_shell: Mark event as handled when requested input is submittedMatthew Wild5 days1-0/+1
|
* mod_admin_shell: user:create(): request password via prompt if none givenMatthew Wild5 days1-6/+7
|
* mod_admin_shell: Add session method to request (password) input from shell ↵Matthew Wild5 days1-0/+46
| | | | client
* mod_admin_socket: Fire event on admin client disconnectMatthew Wild5 days1-1/+6
|
* mod_admin_shell: Don't pause async thread while waiting for promise resultMatthew Wild5 days1-14/+22
| | | | | | | | | | | This allows us to continue sending/receiving on the session, for example if the promise will be resolved by other data that the client is going to send. Specifically, this allows the repl-request-input to work without a deadlock. It does open the door to interleaved commands/results, which may not be a good thing overall, but can be restricted separately if necessary (e.g. a flag on the session).
* mod_cron: Don't run tasks if loaded inside prosodyctlMatthew Wild5 days1-0/+4
| | | | | It's common for modules to depend on mod_cron, and this can lead to it loading inside prosodyctl, where we don't really want to run any cron tasks.
* mod_authz_internal: Make 'prosody:guest' default role for all unknown JIDsMatthew Wild5 days1-2/+2
| | | | | | | | | | | | | | | This fixes an issue where e.g. remote users or even other users on the server were unable to list MUC rooms. We want to define a permission to list MUC rooms, but we want it to be available to everyone by default (the traditional behaviour). prosody:guest is the lowest role we have. I ran a quick check and it isn't really used for anything right now that would be concerning. It was originally designed for anonymous logins. I think it's safe to treat remote JIDs as equivalent, since we have no trust relationship with anonymous users either.
* mod_pep: Support for node/item management commandsMatthew Wild5 days1-0/+3
|
* mod_pubsub: Expand shell commands to include node/item managementMatthew Wild5 days2-38/+256
|
* mod_roster: Add basic roster management shell commandsMatthew Wild5 days1-4/+170
|
* mod_flags: New module to view and manage flags on user accounts via shell/APIMatthew Wild9 days1-0/+157
| | | | | This will be useful for server operators to easily identify flagged accounts, etc.
* mod_admin_shell: stats:show(): Friendlier error message when statistics disabledMatthew Wild2024-12-281-1/+4
|
* mod_saslauth: Use fully qualified import here tooKim Alvefur2024-11-241-3/+3
| | | | | | | Looks like I forgot to update these when merging the channel binding changes after the great renamening. Ref #1223
* MUC: Use fully qualified importKim Alvefur2024-11-231-1/+1
| | | | | | Seems to be hard to break old habits? Ref #1223
* muc: Update link to XEP-0421 (instead of inbox)Kim Alvefur2024-11-231-1/+1
|
* mod_smacks: Run session destruction code in session's async contextMatthew Wild2024-11-211-7/+11
| | | | | This is the Right Thing and should fix various potential issues and race conditions.
* mod_c2s, mod_s2s: Support for queuing callbacks to run in session threadMatthew Wild2024-11-212-23/+32
| | | | | | | | | This allows certain session-specific code that needs to run in the async context, but is itself triggered outside of that context (e.g. timers), to be queued. An example of this is the session destruction code of mod_smacks, when the hibernation timeout is reached.
* mod_smacks: Fix previous commit for case of no session foundKim Alvefur2024-11-191-1/+1
|
* mod_smacks: Prevent traceback on attempting to resume destroyed sessionKim Alvefur2024-11-191-0/+5
| | | | | This shouldn't be possible, but seems to happen anyway after net.server somehow calling the close handler twice, which also should not happen.
* mod_roster: do not store number in attributeJonas Schäfer2024-11-161-1/+1
| | | | | | | | | Attributes are strings. That definitely is a number. So we tostring() it. This is important when the API becomes stricter, for whatever reason that might happen. Practically, this moves the overhead of converting to a string to a place where it is visible.
* mod_admin_shell: Report when a module is already loadedKim Alvefur2024-11-151-0/+6
| | | | Hopefully less confusing than "Module loaded onto 0 hosts"
* mod_admin_shell: Refactor end of module:loadKim Alvefur2024-11-151-1/+4
| | | | Meant to improve clarity and make improving easier
* Merge 0.12->trunkMatthew Wild2024-11-151-6/+4
|\
| * MUC: optimizations for broadcast of visitor presence (thanks Jitsi team)Matthew Wild2024-11-151-6/+4
| | | | | | | | | | This avoids doing performing unnecessary work in the case of visitors joining a MUC, no functionality changes are intended.
* | mod_s2s: Really fix logging of outgoing stanza queue countsKim Alvefur2024-11-111-2/+2
| | | | | | | | | | Some confusion happened in 42b98ee73ca8, possibly because .count() returns the items?
* | mod_s2s: Clone queued outgoing stanzas to prevent changesKim Alvefur2024-11-101-1/+1
| | | | | | | | | | | | | | This clone call was lost in 902d25cd0557 Affects e.g. presence broadcasts, where the same stanza is sent many times while mutating the 'to' attribute.
* | mod_s2s: Fix counting items in outgoing stanza queue (in logs)Kim Alvefur2024-11-101-2/+2
| |
* | mod_s2s: Limit size of outgoing stanza queueKim Alvefur2024-11-091-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This queue is used to buffer stanzas while waiting for an outgoing s2s connection to be established. Limit it to prevent excessive memory usage. Default chosen to approximate how many average stanzas fits in the server_epoll default max_send_buffer_size of 32 MiB Returns a custom error instead of the default core.stanza_router "Communication with remote domains is not enabled" from is sent back, which does not describe what is happening here. Closes #1106
* | mod_pubsub: Pass metadata directly into formKim Alvefur2024-11-081-12/+11
| | | | | | | | | | Reduces duplication and need to edit in two places when adding another metadata field.
* | mod_pubsub: Use new metadata methodKim Alvefur2024-11-082-16/+16
| | | | | | | | | | No longer bypasses access control to retrieve this config subset, which is also explicitly named in the service config now.
* | Merge 0.12->trunkMatthew Wild2024-11-081-5/+10
|\|
| * mod_bookmarks: Clarify log messages on failure to sync to modern PEP bookmarksMatthew Wild2024-11-081-2/+2
| | | | | | | | | | | | | | | | | | Previously the error messages said that it failed to "publish" to PEP, but sometimes a sync involves removing items, which can be confusing. The log was also the same for both legacy PEP and private XML bookmarks. Having different log messages makes it easier to debug the cause and location of any sync errors.
| * mod_bookmarks: Suppress error publishing empty legacy bookmarks w/ no PEP nodeMatthew Wild2024-11-081-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears that when: 1) The user has no bookmarks 2 node in PEP 2) The client publishes an empty bookmark set to a legacy bookmarks location 3) mod_bookmarks will attempt to purge items from the non-existent node and log an error about the failure (item-not-found). This new code will suppress an item-not-found error from the purge operation in the empty-bookmarks case, and adds a log message for any other error (this is helpful because the existing log message confusingly says it was an error *publishing* to the node, which isn't always accurate).
* | mod_http_file_share: Revert 9c62ffbdf2aeKim Alvefur2024-11-021-2/+2
| | | | | | | | No, that wasn't running in a thread, but in a next tick timer.
* | Merge 0.12->trunkKim Alvefur2024-11-021-5/+7
|\|
| * mod_smacks: Destroy timed out session in async context (fixes #1884)Kim Alvefur2024-11-021-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Prevents ASYNC-01 due to storage interactions in a timer. Also considered modifying mod_c2s to allow passing arbitrary closures into its runner thread but this seems like a big step away from the current code for just this module. Also considered creating a dedicated runner in mod_smacks, but ensuring continuity across module reloads might be tricky. We could further improve this in the next major version.
* | mod_admin_shell: Reject attempt to add or remove roles for unrelated hostsKim Alvefur2024-11-011-0/+4
| | | | | | | | The three-argument version seems to be a left-over from 0.12
* | mod_authz_internal: Hint at roles for external JIDs being read-onlyKim Alvefur2024-11-011-1/+1
| | | | | | | | | | Roles for JIDs outside the current host are derived from configuration only with this module.
* | mod_admin_shell: Allow assigning roles to arbitrary JIDs when supportedKim Alvefur2024-11-011-1/+5
| | | | | | | | mod_authz_internal does not support this
* | mod_pubsub: Move precondition error wrangling out of util.pubsubKim Alvefur2024-10-291-3/+4
| | | | | | | | | | | | | | | | | | Removes dependency on util.error from util.pubsub which was only used for this one special case. Line count reduction! Would be even nicer if templating could be done by util.error itself.