Switch to side-by-side view

--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -172,8 +172,10 @@
         Feed.post(self, title=p.subject, description=p.text)
         return p
 
-    def post(self, text, message_id=None, parent_id=None, timestamp=None, **kw):
-        require_access(self, 'post')
+    def post(self, text, message_id=None, parent_id=None,
+             timestamp=None, ignore_security=False, **kw):
+        if not ignore_security:
+            require_access(self, 'post')
         if self.ref_id and self.artifact:
             self.artifact.subscribe()
         if message_id is None: message_id = h.gen_message_id()
@@ -190,7 +192,7 @@
         if timestamp is not None: kwargs['timestamp'] = timestamp
         if message_id is not None: kwargs['_id'] = message_id
         post = self.post_class()(**kwargs)
-        if has_access(self, 'unmoderated_post')():
+        if ignore_security or has_access(self, 'unmoderated_post')():
             log.info('Auto-approving message from %s', c.user.username)
             post.approve()
         else: