diff sat/plugins/plugin_exp_invitation_file.py @ 3324:b57b5e42e894

plugins invitation, invitation-file: adapt service JID and affiliation: if the user part of the service is missing while creating and invitation, it's added because using only the domain will lead to a different repository depending on the requester. In addition, the invitee is added to the repostiroy path as a member, to be sure he/she can access it.
author Goffi <goffi@goffi.org>
date Sat, 01 Aug 2020 16:24:03 +0200
parents 5887fb414758
children 12dc234f698c
line wrap: on
line diff
--- a/sat/plugins/plugin_exp_invitation_file.py	Sat Aug 01 16:19:50 2020 +0200
+++ b/sat/plugins/plugin_exp_invitation_file.py	Sat Aug 01 16:24:03 2020 +0200
@@ -1,7 +1,6 @@
 #!/usr/bin/env python3
 
-
-# SAT plugin to detect language (experimental)
+# SàT plugin to send invitations for file sharing
 # Copyright (C) 2009-2020 Jérôme Poisson (goffi@goffi.org)
 
 # This program is free software: you can redistribute it and/or modify
@@ -40,7 +39,7 @@
 }
 
 
-class FileSharingInvitation(object):
+class FileSharingInvitation:
 
     def __init__(self, host):
         log.info(_("File Sharing Invitation plugin initialization"))
@@ -53,6 +52,7 @@
             in_sign="ssssssss",
             out_sign="",
             method=self._sendFileSharingInvitation,
+            async_=True
         )
 
     def _sendFileSharingInvitation(
@@ -62,10 +62,12 @@
         invitee_jid = jid.JID(invitee_jid_s)
         service = jid.JID(service_s)
         extra = data_format.deserialise(extra_s)
-        return self.host.plugins["INVITATION"].sendFileSharingInvitation(
-            client, invitee_jid, service, repos_type=repos_type or None,
-            namespace=namespace or None, path=path or None, name=name or None,
-            extra=extra)
+        return defer.ensureDeferred(
+            self.host.plugins["INVITATION"].sendFileSharingInvitation(
+                client, invitee_jid, service, repos_type=repos_type or None,
+                namespace=namespace or None, path=path or None, name=name or None,
+                extra=extra)
+        )
 
     def onInvitation(self, client, name, extra, service, repos_type, namespace, path):
         if repos_type == "files":