Commit graph libervia-backend/src/plugins
Author SHA1 Message Date
Goffi
acecf724f3 plugin XEP-0054: fixed not transmitted arguments in getAvatar 2017-06-03 22:24:53 +02:00
Goffi
0b154647e4 plugin invitations: name is now registered as nickname on XMPP server thanks to plugin identity 2017-05-21 20:08:42 +02:00
Goffi
9ce44321cf plugin invitations: doesn't raise an exception anymore if url_template is not set while email is not requested 2017-05-21 20:07:54 +02:00
Goffi
6180484965 plugin identity: plugin identity first draft:
this new plugin is a high level way to manage profile or entity identities, i.e. informations about them.
It has been created to handle easily data which can be in several location (e.g. roster, vcard-tmp, vcard4, etc.)
For now, only nickname can be gotten/set (set only works for profile's own identity, while get can be used on any jid).
2017-05-21 20:04:57 +02:00
Goffi
7ab6802b2c plugin XEP-0054: nick handling + don't remove data on avatar set
- new getNick and setNick allow to manipulate nickname
    - setAvatar was removing any data previously in vCard, this is not the case anymore
2017-05-21 20:01:24 +02:00
Goffi
f3ae390188 plugin events: fixed blog/invitees uri handling 2017-05-19 13:53:52 +02:00
Goffi
fb1e9bf53a plugin events: separation of event node and invitees node
- event node is handling the main metadata of the event, and invitees node handle the invitations/invitees answers
    - invitees and blog node are automatically created and associated to the event, except if they are specified (in which cas the existing one are used and attached to the event node)
    - extra metadata are added to <meta> elements
2017-05-19 12:43:41 +02:00
Goffi
97c3333418 plugin invitations: on modify an empty value delete corresponding extra keys, and reserved keys are now ignored. 2017-05-19 12:37:54 +02:00
Goffi
add4642101 plugin event: first draft:
basic plugin to manage event attendance
2017-04-27 00:55:02 +02:00
Goffi
08afc150c3 plugin invitations: added invitationList command 2017-04-27 00:53:23 +02:00
Goffi
8f7e167dea plugin XEP-0277: comments node access model changes:
comments node access model is now copied from parent item by default. If whitelist access is used, parent item affiliations are copied too.

publish model is now open by default instead of subscribers
2017-04-17 20:33:32 +02:00
Goffi
d04ba950d3 plugin XEP-0060: getNodeAffiliations use jid.JID as keys instead of jids as unicode 2017-04-17 20:31:12 +02:00
Goffi
b07afe6971 plugin invitations: fixed url_template check 2017-04-16 17:57:40 +02:00
Goffi
feac2da87d plugin invitations: added modify method (+ bridge) and fixed email setting in extra 2017-04-03 00:23:01 +02:00
Goffi
697da436af plugin XEP-0060: node create/delete improvments:
- use client instead of profile for createNode and deleteNode
    - new bridge method psCreateNode
    - renamed psDeleteNode to psNodeDelete
2017-04-03 00:22:58 +02:00
Goffi
f12d873897 plugin invitations: added getInvitation method, it return invitation data and raise an error if it is not found 2017-03-29 19:42:42 +02:00
Goffi
e70fc0d62f plugin invitations: invitation id and invitee jid are now added to return dict in invitationCreate, bridge signature has changed too 2017-03-29 19:35:55 +02:00
Goffi
594cf2d02a plugin invitations: raise ValueError if url_template and message_body are both not specified 2017-03-29 19:30:29 +02:00
Goffi
d067b1b8be plugin invitations: fixed leak of uuid in jid 2017-03-26 21:23:03 +02:00
Goffi
f829ef828b plugin XEP-0060: added setNodeAffiliations and its bridge method (psNodeAffiliationsSet) 2017-03-26 18:06:58 +02:00
Goffi
d3b9f16860 plugin XEP-0060: added affiliation handling:
New methods getAffiliations (for checking affiliation by any entity) and getNodeAffiliations (for checking the affiliations of a node, for the owner), and theirs corresponding bridge methods.
2017-03-23 21:01:51 +01:00
Goffi
425d342183 plugin groupblog, XEP-0060: added ACCESS_PUBLISHER_ROSTER and switched to it in groupblog 2017-03-23 09:11:25 +01:00
Goffi
34f6f89025 plugin XEP-0060: added setConfiguration/psNodeConfigurationSet + fix in tmp.wokkel.pubsub 2017-03-14 00:18:02 +01:00
Goffi
a022ae21af plugin XEP-0060: added getConfiguration ad psNodeConfigurationGet bridge method 2017-03-13 23:18:00 +01:00
Goffi
ba8534ee4f plugin XEP-0060: renamed psGet bridge method to psItemGet 2017-03-13 23:17:13 +01:00
Goffi
20ffb6d2eb plugin XEP-0060: added psGet bridge method 2017-03-12 23:28:04 +01:00
Goffi
d7d5ca1d18 plugin invitations: first draft:
/!\ new dependency: shortuuid
Plugin invitations allows to invite somebody without XMPP account, using an unique identifier.
The various arguments are explained in the docstring.
2017-03-12 19:35:36 +01:00
Goffi
94370a8da3 plugin XEP-0077: minor raise fix 2017-03-12 19:33:25 +01:00
Goffi
25c07ce105 plugin account, tools: some cleaning account + email and password tools:
- plugin misc account has been reordered and cleaned a bit.
    - new xmpp_domain setting is used to get the domain name of main XMPP server
    - password generation method has been moved to tools.utils
    - email sending method has been moved to tools.email
2017-03-12 19:32:59 +01:00
Goffi
7c58313ed0 plugin XEP-0077: added inBandAccountNew, inBandUnregister and inBandPasswordChange bridge methods 2017-03-09 23:07:38 +01:00
Goffi
06be5a58aa plugin account: removed dependency to Prosody/prosodyctl and properly use in-band registration instead 2017-03-09 00:06:13 +01:00
Goffi
1c64f98989 plugin XEP-0077: added changePassword and removeRegistration methods 2017-03-09 00:06:13 +01:00
Goffi
d1ba64c780 core, plugin XEP-0077: in-band registration fix and move:
in-band was partially in core for historical reason, it has been moved to XEP-0077, and fixed. It is still incomplete, but should work for basic accounts creation.
2017-03-08 20:59:31 +01:00
Goffi
0257809292 i18n: updated sat.po 2017-03-06 21:22:59 +01:00
Goffi
8d578cec3b core (tools/common): data objects first draft:
this module aims is to help manipulate complex data from bridge, mainly for the template system.
    It is in common and not only in frontends as it may be used in some case by backend, if it needs to use template system in the future.
2017-02-21 21:01:40 +01:00
Goffi
9608829d3b plugins XEP-0033, XEP-0280, text commands: fixed method renaming after client refactoring 2017-02-13 20:59:09 +01:00
Goffi
749bd76f62 plugin XEP-0045: fix after client refactoring 2017-02-12 21:17:56 +01:00
Goffi
3bc851abf2 core (memory/disco): getInfos now handle node + use client instead of profile in many methods 2017-02-12 20:43:20 +01:00
Goffi
ac7d587c49 core (plugins): added missing contants + use of new constants in PLUGIN_INFO 2017-02-12 18:59:10 +01:00
Goffi
97337202cb core, jp: component handling + client handling refactoring:
- SàT can now handle components
    - plugin have now a "modes" key in PLUGIN_INFO where they declare if they can be used with clients and or components. They default to be client only.
    - components are really similar to clients, but with some changes in behaviour:
        * component has "entry point", which is a special plugin with a componentStart method, which is called just after component is connected
        * trigger end with a different suffixes (e.g. profileConnected vs profileConnectedComponent), so a plugin which manage both clients and components can have different workflow
        * for clients, only triggers of plugins handling client mode are launched
        * for components, only triggers of plugins needed in dependencies are launched. They all must handle component mode.
        * component have a sendHistory attribute (False by default) which can be set to True to allow saving sent messages into history
        * for convenience, "client" is still used in method even if it can now be a component
        * a new "component" boolean attribute tells if we have a component or a client
        * components have to add themselve Message protocol
        * roster and presence protocols are not added for components
        * component default port is 5347 (which is Prosody's default port)
    - asyncCreateProfile has been renamed for profileCreate, both to follow new naming convention and to prepare the transition to fully asynchronous bridge
    - createProfile has a new "component" attribute. When used to create a component, it must be set to a component entry point
    - jp: added --component argument to profile/create
    - disconnect bridge method is now asynchronous, this way frontends can know when disconnection is finished
    - new PI_* constants for PLUGIN_INFO values (not used everywhere yet)
    - client/component connection workflow has been moved to their classes instead of being a host methods
    - host.messageSend is now client.sendMessage, and former client.sendMessage is now client.sendMessageData.
    - identities are now handled in client.identities list, so it can be updated dynamically by plugins (in the future, frontends should be able to update them too through bridge)
    - profileConnecting* profileConnected* profileDisconnected* and getHandler now all use client instead of profile
2017-02-12 17:55:43 +01:00
Goffi
b5f1e45d4e core, bridge, frontends: renamed asyncConnect to connect, and added options parameters (not used yet) 2017-02-06 22:54:43 +01:00
Goffi
4ed0785563 plugin XEP-0184: check if entity is allowed to see our presence before returning receipt 2017-02-06 20:47:36 +01:00
Goffi
aeeb0c5635 plugin OTR, core; use of new sendMessage + OTR mini refactoring:
- new client.sendMessage method is used instead of sendMessageToStream
    - client.feedback is used in OTR
    - OTR now add message processing hints and carbon private element as recommanded by XEP-0364. Explicit Message Encryption is still TODO
    - OTR use the new sendMessageFinish trigger, this has a number of advantages:
        * there is little risk that OTR is skipped by other plugins (they have to use client.sendMessage as recommanded)
        * being at the end of the chain, OTR can check and remove any HTML or other leaking elements
        * OTR doesn't have to skip other plugins anymore, this means that things like delivery receipts are now working with OTR
          (but because there is not full stanza encryption, they can leak metadata)
        * OTR can decide to follow storage hint by letting or deleting "history" key
2017-02-05 15:00:01 +01:00
Goffi
4e13215a94 plugin XEP-0297: used sendMessage in forward, and added comment/warning:
this method need to be checked as it is not used currently, and it may need better integration in the current message sending workflow
2017-02-05 14:55:56 +01:00
Goffi
89b8cb3341 plugin XEP-0280: new setPrivate method to tell server not to carbon copy it. 2017-02-05 14:55:21 +01:00
Goffi
503f8644ba core: replaced SkipHistory exception by a key in mess_data:
SkipHistory was skipping all remaining triggers just to skip history, which is not the intented behaviour.
    Now history can be skipped by setting mess_data[u'history'] = C.HISTORY_SKIP, this way we won't skip importants triggers.
    When history is skipped, mess_data[u'extra'][u'history'] will be set to C.HISTORY_SKIP for frontends, so they can inform user that the message is not stored locally.
2017-02-05 14:55:21 +01:00
Goffi
a2c151f9c6 plugin XEP-0334: fixed and improved message processing hints:
- wrong elements were used in this plugging, it could not work properly
    - use constants for hints
    - add addHint method so other plugins can add a hint easily
    - hints can be added by frontends in mess_data['extra']['hints'] (serialized dict) or by other plugins using addHint
    - if history is skipped on message reception, mess_data['extra']['history']['skipped'] is set
    - introduced PLUGIN_INFO['usage'] for usage information for developers
2017-02-05 14:55:19 +01:00
Goffi
6467bdb3c3 core: replaced calls to client.xmlstream.send by client.send which is the right method to use. client.xmlstream should not be used directly 2017-02-04 17:59:13 +01:00
Goffi
115f5ae0e1 plugin otr: various improvments:
- messageSend trigger now use pre_xml_treatments so it doesn't block other triggers of higher priority
    - text commands now use a very high priority, as it is local command and should not be blocked in most of cases
    - new otrState signal, to send state change to frontends
    - history is not skipped anymore, a future option may change this behaviour
    - OTR trigger are skipped on groupchat messages
    - context_manager is now in client instead of being global to plugin
    - removed fixPotr as it is fixed upstream

note triggers should be improved for encryption methods, as skipping an encrypter may break security, but putting it in top priority may break nice features.

fix bug 170
2017-02-01 21:44:24 +01:00
Goffi
d5fbafd979 plugin sec OTR: fixed OTR:
- fixed bridge calls
    - use deferred translation
    - unicode string fixes
    - various other improvments
2017-01-26 20:24:58 +01:00