1.1 --- a/actions/SendMessage.py Sat May 18 01:00:16 2013 +0200
1.2 +++ b/actions/SendMessage.py Thu May 30 21:12:30 2013 +0200
1.3 @@ -9,6 +9,7 @@
1.4 from MoinMoin.action import ActionBase, AttachFile
1.5 from MoinMoin.formatter import text_html
1.6 from MoinMoin.log import getLogger
1.7 +from MoinMoin.Page import Page
1.8 from MoinMoin import config
1.9 from MoinMessage import GPG, MoinMessageError, Message, sendMessage
1.10 from MoinSupport import *
1.11 @@ -207,27 +208,37 @@
1.12 if not recipient_details:
1.13 return 0, _("The specified recipient is not present in the list of known contacts.")
1.14
1.15 - try:
1.16 - url, fingerprint = recipient_details.split()
1.17 - except ValueError:
1.18 - return 0, _("The recipient details were not in the correct format: url, fingerprint.")
1.19 + parameters = parseDictEntry(recipient_details, ("fingerprint",))
1.20 +
1.21 + if not parameters.has_key("page") and not parameters.has_key("url"):
1.22 + return 0, _("The recipient details are missing a location for sent messages.")
1.23 +
1.24 + if parameters.has_key("url") and not parameters.has_key("fingerprint"):
1.25 + return 0, _("The recipient details are missing a fingerprint for sending messages.")
1.26
1.27 # Sign, encrypt and send the message.
1.28
1.29 message = message.get_payload()
1.30
1.31 - if not queue:
1.32 + if not queue and parameters.has_key("url"):
1.33 try:
1.34 if signer:
1.35 message = gpg.signMessage(message, signer)
1.36
1.37 - message = gpg.encryptMessage(message, fingerprint)
1.38 - sendMessage(message, url)
1.39 + message = gpg.encryptMessage(message, parameters["fingerprint"])
1.40 + sendMessage(message, parameters["url"])
1.41
1.42 except MoinMessageError, exc:
1.43 return 0, "%s: %s" % (_("The message could not be prepared and sent:"), exc)
1.44
1.45 - # Or queue the message.
1.46 + # Or queue the message on the specified page.
1.47 +
1.48 + elif parameters.has_key("page"):
1.49 + page = Page(request, parameters["page"])
1.50 + outbox = ItemStore(page, "messages", "message-locks")
1.51 + outbox.append(message.as_string())
1.52 +
1.53 + # Or queue the message in a special outbox.
1.54
1.55 else:
1.56 outbox = ItemStore(request.page, "outgoing-messages", "outgoing-message-locks")