aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
Commit message (Collapse)AuthorAgeFilesLines
* mod_account_activity: Add shell command to list inactive accountsMatthew Wild8 days1-0/+43
| | | | Including accounts which may never have logged in.
* mod_account_activity: Fix required module namesMatthew Wild8 days1-3/+3
|
* mod_account_activity: Record an account's last activity timestampMatthew Wild9 days1-0/+109
| | | | | | | | | | | | | This is similar to mod_lastlog/mod_lastlog2. Some functionality was dropped, compared to mod_lastlog2. These features (recording the IP address, or tracking the timestamp of multiple events) are handled better by the mod_audit family of modules. For example, those correctly handle multiple logins, IP address truncation, and data retention policies. The "registered" timestamp from mod_lastlog2 was also dropped, as this has been stored in account_details by Prosody itself since at least 0.12 already.
* mod_storage_sql: Fix tests for SQLite3Kim Alvefur13 days1-1/+1
| | | | Tests does not run the code that initializes `sqlite_version`
* MUC: Don't inform people about the avatar hash when there is noneMatthew Wild14 days1-0/+1
|
* mod_vcard: Switch store name for MUC hosts (thanks lissine)Matthew Wild2025-02-061-2/+8
|
* mod_muc: Integrate support for vcards/avatars on MUC roomsMatthew Wild2025-02-062-0/+85
| | | | | | This was previously served by a community module (mod_vcard_muc). It can be disabled by setting `vcard_muc = false` in the config.
* mod_vcard: Some support for handling vcards on componentsMatthew Wild2025-02-061-3/+7
|
* mod_vcard: Fire event when vcard updatedMatthew Wild2025-02-061-0/+1
|
* mod_vcard: Add API to get hash of the vcard avatarMatthew Wild2025-02-061-0/+13
|
* mod_c2s: Add debug log when disconnecting all user sessionsMatthew Wild2025-02-061-0/+1
|
* mod_admin_shell: Fix column alignment in 'help roles'Kim Alvefur2025-02-021-1/+1
|
* mod_admin_shell: Fix help forgetting argumentsKim Alvefur2025-02-021-1/+1
| | | | | | The array:pluck() method mutates the args, replacing the table items with the resulting strings. On later runs I assume it tries to index the string, which returns nil, emptying the array.
* mod_tokenauth: Fix expiry lasting one second too muchRémi Bardon2025-02-011-5/+5
| | | | | | | | | Because the code was using `< now` in a lot of places, things expiring at the current second wouldn't be marked as expired. It isn't noticeable in real-world scenarios but I wanted to create OAuth 2.0 tokens valid for 0 second in integration tests and it wasn't possible. By using `<=` instead of `<`, we make sure tokens don't live a single millisecond more than what they are supposed to.
* mod_storage_sql: Don't treat Enter or Ctrl-C as yes in upgrade commandKim Alvefur2025-01-231-1/+1
| | | | | It seems to imply that No is the default, so it shouldn't continue doing the Yes action unless you actually press Y
* mod_storage_sql: Detect SQLite3 without UPSERT (or SQLCipher 3.x)Kim Alvefur2025-01-231-1/+23
| | | | | | | | | | | | | | | | | | SQLCipher v3.4.1 (the version in Debian 12) is based on SQLite3 v3.15.2, while UPSERT support was introduced in SQLite3 v3.24.0 This check was not needed before because we v3.24.0 has not been in a version of Debian we support for a long, long time. Note however that SQLCipher databases are not compatible across major versions, upgrading from v3.x to v4.x requires executing a migration. Attempts at making `prosodyctl mod_storage_sql upgrade` perform such a migration has not been successful. Executing the following in the `sqlcipher` tool should do the migration: PRAGMA key = '<key material>'; PRAGMA cipher_migrate;
* mod_admin_shell: Remove log statement intended for development onlyMatthew Wild2025-01-161-1/+0
|
* mod_pubsub: Remove duplicate create_node commandMatthew Wild2025-01-141-16/+0
| | | | Removed the one without error handling.
* mod_authz_internal: Make host considered the parent configurableKim Alvefur2025-01-131-1/+1
| | | | | | | | | | | | This bestows the role specified by the 'host_user_role' setting onto users of that host. For simplicity, only a single host can be specified. Making it configurable allows for setups where VirtualHost and related Components may be siblings instead of having a subdomain relationship. For setups with many VirtualHosts sharing a single Component, the 'server_user_role' setting is more appropriate. Even more complicated setups would have to resort to mod_firewall or similar.
* mod_cloud_notify: Merge from prosody-modules@fc521fb5ffa0Matthew Wild2025-01-091-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 Wild2025-01-091-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 Alvefur2025-01-081-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 Alvefur2025-01-081-1/+1
|
* mod_admin_shell: Remove redundant 'mod_' prefix from debug messageKim Alvefur2025-01-081-1/+1
|
* mod_admin_shell: Fix reporting origin module for commandsKim Alvefur2025-01-081-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 Alvefur2025-01-071-1/+1
| | | | This produced a *lot* of noise, especially listing items.
* mod_pubsub: Limit node listing based on new ACL-aware metadata methodKim Alvefur2025-01-071-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 Wild2025-01-071-6/+9
|
* mod_admin_shell: user:create(): Reject promise with error message on failureMatthew Wild2025-01-071-1/+1
|
* mod_admin_shell: Mark event as handled when requested input is submittedMatthew Wild2025-01-071-0/+1
|
* mod_admin_shell: user:create(): request password via prompt if none givenMatthew Wild2025-01-071-6/+7
|
* mod_admin_shell: Add session method to request (password) input from shell ↵Matthew Wild2025-01-071-0/+46
| | | | client
* mod_admin_socket: Fire event on admin client disconnectMatthew Wild2025-01-071-1/+6
|
* mod_admin_shell: Don't pause async thread while waiting for promise resultMatthew Wild2025-01-071-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 Wild2025-01-071-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 Wild2025-01-071-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 Wild2025-01-071-0/+3
|
* mod_pubsub: Expand shell commands to include node/item managementMatthew Wild2025-01-072-38/+256
|
* mod_roster: Add basic roster management shell commandsMatthew Wild2025-01-071-4/+170
|
* mod_flags: New module to view and manage flags on user accounts via shell/APIMatthew Wild2025-01-031-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"