diff sat/plugins/plugin_comp_file_sharing.py @ 4021:412b99c29d83

core (xmpp), component file sharing, plugin XEP-0363: `enabled_features` + HTTP Upload: add a mechanism to explicitely enable some features in components, and use it to enable HTTP Upload only if it's explicitely enabled.
author Goffi <goffi@goffi.org>
date Thu, 23 Mar 2023 15:38:07 +0100
parents 7af29260ecb8
children 524856bd7b19
line wrap: on
line diff
--- a/sat/plugins/plugin_comp_file_sharing.py	Thu Mar 23 15:32:10 2023 +0100
+++ b/sat/plugins/plugin_comp_file_sharing.py	Thu Mar 23 15:38:07 2023 +0100
@@ -355,7 +355,7 @@
         self._h = self.host.plugins["XEP-0300"]
         self._t = self.host.plugins["XEP-0264"]
         self._hu = self.host.plugins["XEP-0363"]
-        self._hu.registerHandler(self._onHTTPUpload)
+        self._hu.registerHandler(self._on_http_upload)
         self.host.trigger.add("FILE_getDestDir", self._getDestDirTrigger)
         self.host.trigger.add(
             "XEP-0234_fileSendingRequest", self._fileSendingRequestTrigger, priority=1000
@@ -393,6 +393,9 @@
         return Comments_handler(self)
 
     def profileConnecting(self, client):
+        # we activate HTTP upload
+        client.enabled_features.add("XEP-0363")
+
         self.init()
         public_base_url = self.host.memory.getConfig(
             'component file-sharing', 'http_upload_public_facing_url')
@@ -632,7 +635,7 @@
         except KeyError:
             log.error(f"trying to purge an inexisting upload slot ({upload_id})")
 
-    async def _onHTTPUpload(self, client, request):
+    async def _on_http_upload(self, client, request):
         # filename should be already cleaned, but it's better to double check
         assert '/' not in request.filename
         # client._file_sharing_allowed_hosts is set in plugin XEP-0329