1.1 --- a/actions/SendMessage.py Sun Jul 14 00:33:44 2013 +0200
1.2 +++ b/actions/SendMessage.py Sun Jul 14 01:18:09 2013 +0200
1.3 @@ -11,7 +11,7 @@
1.4 from MoinMoin.log import getLogger
1.5 from MoinMoin.Page import Page
1.6 from MoinMoin import config
1.7 -from MoinMessage import GPG, MoinMessageError, Message, sendMessage
1.8 +from MoinMessage import GPG, MoinMessageError, Message, sendMessage, timestamp
1.9 from MoinSupport import *
1.10 from MoinMoin.wikiutil import escape, MimeType, parseQueryString, \
1.11 taintfilename, getInterwikiHomePage
1.12 @@ -65,7 +65,7 @@
1.13 recipient = form.get("recipient", [""])[0]
1.14 format = form.get("format", ["wiki"])[0]
1.15 preview = form.get("preview")
1.16 - queue = form.get("queue")
1.17 + action = form.get("send-action", ["send"])[0]
1.18
1.19 # Get a list of potential recipients.
1.20
1.21 @@ -98,8 +98,12 @@
1.22 "message_default" : escape(message),
1.23 "preview_label" : escattr(_("Preview message")),
1.24 "preview_output" : preview_output,
1.25 + "send_label" : escape(_("Send message immediately")),
1.26 + "send_selected" : self._get_selected("send", action),
1.27 "queue_label" : escape(_("Queue message for sending")),
1.28 - "queue_checked" : queue and 'checked="checked" ' or "",
1.29 + "queue_selected" : self._get_selected("queue", action),
1.30 + "forward_label" : escape(_("Send message for forwarding")),
1.31 + "forward_selected" : self._get_selected("forward", action),
1.32 }
1.33
1.34 # Prepare the output HTML.
1.35 @@ -139,9 +143,13 @@
1.36 </td>
1.37 </tr>
1.38 <tr>
1.39 - <td class="label"><label>%(queue_label)s</label></td>
1.40 + <td></td>
1.41 <td>
1.42 - <input name="queue" type="checkbox" value="true" %(queue_checked)s/>
1.43 + <select name="send-action">
1.44 + <option value="send" %(send_selected)s>%(send_label)s</option>
1.45 + <option value="queue" %(queue_selected)s>%(queue_label)s</option>
1.46 + <option value="forward" %(forward_selected)s>%(forward_label)s</option>
1.47 + </select>
1.48 </td>
1.49 </tr>
1.50 <tr>
1.51 @@ -165,7 +173,10 @@
1.52 text = form.get("message", [None])[0]
1.53 recipient = form.get("recipient", [None])[0]
1.54 format = form.get("format", ["wiki"])[0]
1.55 - queue = form.get("queue")
1.56 + action = form.get("send-action", ["send"])[0]
1.57 +
1.58 + queue = action == "queue"
1.59 + forward = action == "forward"
1.60
1.61 if not text:
1.62 return 0, _("A message must be given.")
1.63 @@ -295,6 +306,15 @@
1.64 message = gpg.signMessage(message, signer)
1.65
1.66 message = gpg.encryptMessage(message, parameters["fingerprint"])
1.67 +
1.68 + # Add signing for forwarded messages.
1.69 + # NOTE: Signing with the same identity.
1.70 +
1.71 + if forward and signer:
1.72 + timestamp(message)
1.73 + message["Update-Action"] = "store"
1.74 + message = gpg.signMessage(message, signer)
1.75 +
1.76 sendMessage(message, parameters["location"])
1.77
1.78 except MoinMessageError, exc: