You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by he...@apache.org on 2015/05/15 18:07:41 UTC

[01/14] allura git commit: [#6107] ticket:748 Added option for allowing email postings to ForgeWiki app

Repository: allura
Updated Branches:
  refs/heads/master 31189d43d -> 7ee69bf9a


[#6107] ticket:748 Added option for allowing email postings to ForgeWiki app


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/17fe2630
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/17fe2630
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/17fe2630

Branch: refs/heads/master
Commit: 17fe2630817e38379c5a1cc71ab04c9fc2d57fd5
Parents: 5fb3693
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Sun Apr 26 22:50:14 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:22 2015 +0000

----------------------------------------------------------------------
 .../forgewiki/templates/wiki/admin_options.html    |  8 ++++++++
 ForgeWiki/forgewiki/wiki_main.py                   | 17 +++++++++++++++--
 2 files changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/17fe2630/ForgeWiki/forgewiki/templates/wiki/admin_options.html
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/templates/wiki/admin_options.html b/ForgeWiki/forgewiki/templates/wiki/admin_options.html
index 4972422..969d209 100644
--- a/ForgeWiki/forgewiki/templates/wiki/admin_options.html
+++ b/ForgeWiki/forgewiki/templates/wiki/admin_options.html
@@ -42,6 +42,14 @@
         <span>{{app.show_right_bar}}</span>
       {% endif %}
     </div>
+    <label class="grid-4">Allow posting replies via email:</label>
+    <div class="grid-9">
+      {% if allow_config %}
+        <input type="checkbox" name="allow_email_posting" id="allow_email_posting"{% if app.allow_email_posting %} checked="checked"{% endif %}/>
+      {% else %}
+        <span>{{app.allow_email_posting}}</span>
+      {% endif %}
+    </div>
     <div class="grid-13">&nbsp;</div>
     <hr>
     <div class="grid-13">&nbsp;</div>

http://git-wip-us.apache.org/repos/asf/allura/blob/17fe2630/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index a5b3d3e..9a2da41 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -33,7 +33,7 @@ from ming.orm import session
 # Pyforge-specific imports
 from allura import model as M
 from allura.lib import helpers as h
-from allura.app import Application, SitemapEntry, DefaultAdminController
+from allura.app import Application, SitemapEntry, DefaultAdminController, ConfigOption
 from allura.lib.search import search_app
 from allura.lib.decorators import require_post
 from allura.lib.security import require_access, has_access
@@ -93,6 +93,9 @@ class ForgeWikiApp(Application):
         'delete': 'Delete wiki pages.',
         'admin': 'Set permissions. Configure options. Set wiki home page.',
     }
+    config_options = Application.config_options + [
+        ConfigOption('AllowEmailPosting', bool, True)
+    ]
     searchable = True
     exportable = True
     tool_label = 'Wiki'
@@ -183,6 +186,14 @@ The wiki uses [Markdown](%s) syntax.
     def show_right_bar(self, show):
         self.config.options['show_right_bar'] = bool(show)
 
+    @Property
+    def allow_email_posting():
+        def fget(self):
+            return self.config.options.get('AllowEmailPosting', True)
+
+        def fset(self, show):
+            self.config.options['AllowEmailPosting'] = bool(show)
+
     def main_menu(self):
         '''Apps should provide their entries to be added to the main nav
         :return: a list of :class:`SitemapEntries <allura.app.SitemapEntry>`
@@ -842,9 +853,11 @@ class WikiAdminController(DefaultAdminController):
     @without_trailing_slash
     @expose()
     @require_post()
-    def set_options(self, show_discussion=False, show_left_bar=False, show_right_bar=False):
+    def set_options(self, show_discussion=False, show_left_bar=False, show_right_bar=False,
+                    allow_email_posting=False):
         self.app.show_discussion = show_discussion
         self.app.show_left_bar = show_left_bar
         self.app.show_right_bar = show_right_bar
+        self.app.allow_email_posting = allow_email_posting
         flash('Wiki options updated')
         redirect(c.project.url() + 'admin/tools')


[03/14] allura git commit: [#6107] ticket:748 Added option for allowing email postings to ForgeDiscussion app

Posted by he...@apache.org.
[#6107] ticket:748 Added option for allowing email postings to ForgeDiscussion app


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/5eb6942b
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/5eb6942b
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/5eb6942b

Branch: refs/heads/master
Commit: 5eb6942b683fcffbf95dfca033ce6b7c5bc7c12a
Parents: 31189d4
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Wed Apr 22 23:00:56 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:22 2015 +0000

----------------------------------------------------------------------
 ForgeDiscussion/forgediscussion/forum_main.py    | 6 ++++--
 ForgeDiscussion/forgediscussion/widgets/admin.py | 5 ++++-
 2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/5eb6942b/ForgeDiscussion/forgediscussion/forum_main.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index d179a29..5cba5f8 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -63,7 +63,8 @@ class ForgeDiscussionApp(Application):
     }
     config_options = Application.config_options + [
         ConfigOption('PostingPolicy',
-                     schema.OneOf('ApproveOnceModerated', 'ModerateAll'), 'ApproveOnceModerated')
+                     schema.OneOf('ApproveOnceModerated', 'ModerateAll'), 'ApproveOnceModerated'),
+        ConfigOption('AllowEmailPosting', bool, True)
     ]
     PostClass = DM.ForumPost
     AttachmentClass = DM.ForumAttachment
@@ -252,7 +253,8 @@ class ForumAdminController(DefaultAdminController):
         c.options_admin = W.options_admin
         return dict(app=self.app,
                     form_value=dict(
-                        PostingPolicy=self.app.config.options.get('PostingPolicy')))
+                        PostingPolicy=self.app.config.options.get('PostingPolicy'),
+                        AllowEmailPosting=self.app.config.options.get('AllowEmailPosting')))
 
     @expose('jinja:forgediscussion:templates/discussionforums/admin_forums.html')
     def forums(self, add_forum=None, **kw):

http://git-wip-us.apache.org/repos/asf/allura/blob/5eb6942b/ForgeDiscussion/forgediscussion/widgets/admin.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/widgets/admin.py b/ForgeDiscussion/forgediscussion/widgets/admin.py
index cf2ff8f..696f155 100644
--- a/ForgeDiscussion/forgediscussion/widgets/admin.py
+++ b/ForgeDiscussion/forgediscussion/widgets/admin.py
@@ -42,7 +42,10 @@ class OptionsAdmin(ff.AdminForm):
                 options=[
                     ew.Option(py_value='ApproveOnceModerated',
                               label='Approve Once Moderated'),
-                    ew.Option(py_value='ApproveAll', label='Approve All')])
+                    ew.Option(py_value='ApproveAll', label='Approve All')]),
+            ew.Checkbox(
+                name='AllowEmailPosting',
+                label='Allow posting replies via email')
         ]
         return fields
 


[13/14] allura git commit: [#6107] ticket:770 Handle discussion dissabled property for tickets

Posted by he...@apache.org.
[#6107] ticket:770 Handle discussion dissabled property for tickets


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/66b78e46
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/66b78e46
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/66b78e46

Branch: refs/heads/master
Commit: 66b78e46b5a721300c391875f13bd039fcbe0dfe
Parents: c307dd4
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri May 15 11:07:33 2015 +0000
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri May 15 11:19:09 2015 +0000

----------------------------------------------------------------------
 Allura/allura/model/notification.py       | 5 +++--
 Allura/allura/templates/mail/footer.txt   | 4 +++-
 ForgeTracker/forgetracker/model/ticket.py | 7 ++++++-
 ForgeTracker/forgetracker/tracker_main.py | 6 +++++-
 4 files changed, 17 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/66b78e46/Allura/allura/model/notification.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index 4134457..4241c42 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -676,12 +676,13 @@ class MailFooter(object):
         return cls.view.get_template(template).render(kw)
 
     @classmethod
-    def standard(cls, notification, allow_email_posting=True):
+    def standard(cls, notification, allow_email_posting=True, **kw):
         return cls._render('mail/footer.txt',
                            domain=config['domain'],
                            notification=notification,
                            prefix=config['forgemail.url'],
-                           allow_email_posting=allow_email_posting)
+                           allow_email_posting=allow_email_posting,
+                           **kw)
 
     @classmethod
     def monitored(cls, toaddr, app_url, setting_url):

http://git-wip-us.apache.org/repos/asf/allura/blob/66b78e46/Allura/allura/templates/mail/footer.txt
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/mail/footer.txt b/Allura/allura/templates/mail/footer.txt
index 548051e..62de862 100644
--- a/Allura/allura/templates/mail/footer.txt
+++ b/Allura/allura/templates/mail/footer.txt
@@ -22,7 +22,9 @@
 
 Sent from {{domain}} because you indicated interest in <{{ prefix }}{{ notification.link }}>
 
-{% if not allow_email_posting %}
+{% if discussion_disabled %}
+Please do not reply to this message. Discussion is disabled for the <{{ prefix }}{{ notification.link }}>
+{% elif not allow_email_posting %}
 Please do not reply to this message. Post your messages on the [original page]({{ prefix }}{{ notification.link }})
 {% endif %}
 

http://git-wip-us.apache.org/repos/asf/allura/blob/66b78e46/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index fdab276..32cb56d 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -762,6 +762,8 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
 
     @property
     def email_address(self):
+        if self.discussion_disabled:
+            return tg_config.get('forgemail.return_path')
         if c.app.config.options.get('AllowEmailPosting', True):
             domain = '.'.join(
                 reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
@@ -1271,7 +1273,10 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
                 h.absurl('{0}admin/{1}/options'.format(
                     self.project.url(),
                     self.app.config.options.mount_point)))
-        return super(Ticket, self).get_mail_footer(notification, toaddr)
+        return MailFooter.standard(
+            notification,
+            self.app.config.options.get('AllowEmailPosting', True),
+            discussion_disabled=self.discussion_disabled)
 
 
 class TicketAttachment(BaseAttachment):

http://git-wip-us.apache.org/repos/asf/allura/blob/66b78e46/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 4d987dc..52e7b28 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -280,7 +280,11 @@ class ForgeTrackerApp(Application):
                 ticket_num=int(topic))
         except:
             log.exception('Error getting ticket %s', topic)
-        self.handle_artifact_message(ticket, message)
+            return
+        if ticket.discussion_disabled:
+            log.info('Discussion disabled for ticket %s', ticket.ticket_num)
+        else:
+            self.handle_artifact_message(ticket, message)
 
     def main_menu(self):
         '''Apps should provide their entries to be added to the main nav


[08/14] allura git commit: [#6107] ticket:748 Added 'no reply' message

Posted by he...@apache.org.
[#6107] ticket:748 Added 'no reply' message


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/51cf013f
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/51cf013f
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/51cf013f

Branch: refs/heads/master
Commit: 51cf013f8f3fd37b9163a38a53ff27c50633ec08
Parents: a887e24
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Mon Apr 27 18:03:59 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:23 2015 +0000

----------------------------------------------------------------------
 Allura/allura/model/artifact.py         | 3 ++-
 Allura/allura/model/notification.py     | 5 +++--
 Allura/allura/templates/mail/footer.txt | 4 ++++
 3 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/51cf013f/Allura/allura/model/artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index daba6c3..b338572 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -395,7 +395,8 @@ class Artifact(MappedClass, SearchIndexable):
         super(Artifact, self).delete()
 
     def get_mail_footer(self, notification, toaddr):
-        return MailFooter.standard(notification)
+        allow_email_posting = self.app.config.options.get('AllowEmailPosting', True)
+        return MailFooter.standard(notification, allow_email_posting)
 
     def message_id(self):
         '''Persistent, email-friendly (Message-ID header) id of this artifact'''

http://git-wip-us.apache.org/repos/asf/allura/blob/51cf013f/Allura/allura/model/notification.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index 8c82890..4134457 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -676,11 +676,12 @@ class MailFooter(object):
         return cls.view.get_template(template).render(kw)
 
     @classmethod
-    def standard(cls, notification):
+    def standard(cls, notification, allow_email_posting=True):
         return cls._render('mail/footer.txt',
                            domain=config['domain'],
                            notification=notification,
-                           prefix=config['forgemail.url'])
+                           prefix=config['forgemail.url'],
+                           allow_email_posting=allow_email_posting)
 
     @classmethod
     def monitored(cls, toaddr, app_url, setting_url):

http://git-wip-us.apache.org/repos/asf/allura/blob/51cf013f/Allura/allura/templates/mail/footer.txt
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/mail/footer.txt b/Allura/allura/templates/mail/footer.txt
index 608b5a2..548051e 100644
--- a/Allura/allura/templates/mail/footer.txt
+++ b/Allura/allura/templates/mail/footer.txt
@@ -22,4 +22,8 @@
 
 Sent from {{domain}} because you indicated interest in <{{ prefix }}{{ notification.link }}>
 
+{% if not allow_email_posting %}
+Please do not reply to this message. Post your messages on the [original page]({{ prefix }}{{ notification.link }})
+{% endif %}
+
 To unsubscribe from further messages, please visit <{{ prefix }}/auth/subscriptions/>


[10/14] allura git commit: [#6107] ticket:748 Check if email posting is allowed in base implementation of email_address

Posted by he...@apache.org.
[#6107] ticket:748 Check if email posting is allowed in base implementation of email_address


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1ebfe019
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1ebfe019
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1ebfe019

Branch: refs/heads/master
Commit: 1ebfe019e7f94fd23fd4d740afe0d51487bdfda1
Parents: a334bfa
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Thu Apr 30 21:53:32 2015 +0300
Committer: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Committed: Thu Apr 30 21:53:32 2015 +0300

----------------------------------------------------------------------
 Allura/allura/app.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/1ebfe019/Allura/allura/app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index 4e1ed5d..3e226db 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -25,6 +25,7 @@ from xml.etree import ElementTree as ET
 import pkg_resources
 from tg import expose, redirect, flash, validate
 from tg.decorators import without_trailing_slash
+from tg import config as tg_config
 from pylons import request, app_globals as g, tmpl_context as c
 from paste.deploy.converters import asbool, asint
 from bson import ObjectId
@@ -309,8 +310,11 @@ class Application(object):
 
         Assumes self.url returns a url path without domain, starting with '/'
         """
-        parts = list(reversed(self.url[1:-1].split('/')))
-        return '%s@%s%s' % (parts[0], '.'.join(parts[1:]), config.common_suffix)
+        if self.config.options.get('AllowEmailPosting', True):
+            parts = list(reversed(self.url[1:-1].split('/')))
+            return '%s@%s%s' % (parts[0], '.'.join(parts[1:]), config.common_suffix)
+        else:
+            return tg_config.get('forgemail.return_path')
 
     @property
     def acl(self):


[14/14] allura git commit: [#6107] ticket:770 Add Artifact.email_domain; Refactor email_address

Posted by he...@apache.org.
[#6107] ticket:770 Add Artifact.email_domain; Refactor email_address


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/7ee69bf9
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/7ee69bf9
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/7ee69bf9

Branch: refs/heads/master
Commit: 7ee69bf9a18bc57302b202dcc956400a6b69c71b
Parents: 66b78e4
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri May 15 11:36:10 2015 +0000
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri May 15 11:36:10 2015 +0000

----------------------------------------------------------------------
 Allura/allura/model/artifact.py                | 6 ++++++
 Allura/allura/model/repository.py              | 4 +---
 ForgeBlog/forgeblog/model/blog.py              | 3 +--
 ForgeDiscussion/forgediscussion/model/forum.py | 3 +--
 ForgeTracker/forgetracker/model/ticket.py      | 3 +--
 ForgeWiki/forgewiki/model/wiki.py              | 3 +--
 6 files changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/Allura/allura/model/artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index b338572..32ebc10 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -257,6 +257,12 @@ class Artifact(MappedClass, SearchIndexable):
             return 'mailto:%s' % self.email_address
 
     @property
+    def email_domain(self):
+        """Return domain part of email address for this Artifact"""
+        url = self.app.url[1:-1].split('/')
+        return '.'.join(reversed(url)).replace('_', '-')
+
+    @property
     def project(self):
         """Return the :class:`allura.model.project.Project` instance to which
         this Artifact belongs.

http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 8455395..e4583e5 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -567,9 +567,7 @@ class Repository(Artifact, ActivityObject):
 
     @property
     def email_address(self):
-        domain = '.'.join(
-            reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
-        return u'noreply@%s%s' % (domain, config.common_suffix)
+        return u'noreply@%s%s' % (self.email_domain, config.common_suffix)
 
     def index(self):
         result = Artifact.index(self)

http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/ForgeBlog/forgeblog/model/blog.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/model/blog.py b/ForgeBlog/forgeblog/model/blog.py
index 5839d76..c8426cb 100644
--- a/ForgeBlog/forgeblog/model/blog.py
+++ b/ForgeBlog/forgeblog/model/blog.py
@@ -186,8 +186,7 @@ class BlogPost(M.VersionedArtifact, ActivityObject):
     @property
     def email_address(self):
         if self.config.options.get('AllowEmailPosting', True):
-            domain = '.'.join(
-                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            domain = self.email_domain
             return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
         else:
             return tg_config.get('forgemail.return_path')

http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/ForgeDiscussion/forgediscussion/model/forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/model/forum.py b/ForgeDiscussion/forgediscussion/model/forum.py
index d4ad197..96e570d 100644
--- a/ForgeDiscussion/forgediscussion/model/forum.py
+++ b/ForgeDiscussion/forgediscussion/model/forum.py
@@ -80,8 +80,7 @@ class Forum(M.Discussion):
     @property
     def email_address(self):
         if c.app.config.options.get('AllowEmailPosting', True):
-            domain = '.'.join(
-                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            domain = self.email_domain
             local_part = self.shortname.replace('/', '.')
             return '%s@%s%s' % (local_part, domain, config.common_suffix)
         else:

http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 32cb56d..925a067 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -765,8 +765,7 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
         if self.discussion_disabled:
             return tg_config.get('forgemail.return_path')
         if c.app.config.options.get('AllowEmailPosting', True):
-            domain = '.'.join(
-                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            domain = self.email_domain
             return '%s@%s%s' % (self.ticket_num, domain, config.common_suffix)
         else:
             return tg_config.get('forgemail.return_path')

http://git-wip-us.apache.org/repos/asf/allura/blob/7ee69bf9/ForgeWiki/forgewiki/model/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 827a104..2ca4f8f 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -161,8 +161,7 @@ class Page(VersionedArtifact, ActivityObject):
     @property
     def email_address(self):
         if context.app.config.options.get('AllowEmailPosting', True):
-            domain = '.'.join(
-                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            domain = self.email_domain
             return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
         else:
             return tg_config.get('forgemail.return_path')


[02/14] allura git commit: [#6107] ticket:748 Implemented rejecting messages when email posting is disabled

Posted by he...@apache.org.
[#6107] ticket:748 Implemented rejecting messages when email posting is disabled


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/5fb3693f
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/5fb3693f
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/5fb3693f

Branch: refs/heads/master
Commit: 5fb3693fcf95405320e2c1d184513d42e7e4bdac
Parents: 9732fbb
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Fri Apr 24 23:31:06 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:22 2015 +0000

----------------------------------------------------------------------
 Allura/allura/tasks/mail_tasks.py |  2 ++
 Allura/allura/tests/test_tasks.py | 16 +++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/5fb3693f/Allura/allura/tasks/mail_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tasks/mail_tasks.py b/Allura/allura/tasks/mail_tasks.py
index 92c06e7..2547291 100644
--- a/Allura/allura/tasks/mail_tasks.py
+++ b/Allura/allura/tasks/mail_tasks.py
@@ -59,6 +59,8 @@ def route_email(
                     if not app.has_access(c.user, userpart):
                         log.info('Access denied for %s to mailbox %s',
                                  c.user, userpart)
+                    elif not c.app.config.options.get('AllowEmailPosting', True):
+                        log.info("Posting from email is not enabled")
                     else:
                         if msg['multipart']:
                             msg_hdrs = msg['headers']

http://git-wip-us.apache.org/repos/asf/allura/blob/5fb3693f/Allura/allura/tests/test_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_tasks.py b/Allura/allura/tests/test_tasks.py
index 4ad311c..9cd7d26 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -124,7 +124,7 @@ class TestIndexTasks(unittest.TestCase):
     def test_add_projects(self):
         g.solr.db.clear()
         old_solr_size = len(g.solr.db)
-        projects = M.Project.query.find().all()        
+        projects = M.Project.query.find().all()
         index_tasks.add_projects.post([p._id for p in projects])
         M.MonQTask.run_ready()
         new_solr_size = len(g.solr.db)
@@ -457,6 +457,20 @@ I'm not here'''
                 message)
             assert_equal(hm.call_count, 0)
 
+    @td.with_tool('test', 'Tickets', 'bugs')
+    def test_email_posting_disabled(self):
+        message = 'Hello, world!'
+        import forgetracker
+        c.user = M.User.by_username('test-admin')
+        with mock.patch.object(forgetracker.tracker_main.ForgeTrackerApp, 'handle_message') as hm:
+            c.app.config.options = {'AllowEmailPosting': False}
+            mail_tasks.route_email(
+                '0.0.0.0',
+                c.user.email_addresses[0],
+                ['1@bugs.test.p.in.localhost'],
+                message)
+            assert_equal(hm.call_count, 0)
+
 
 class TestNotificationTasks(unittest.TestCase):
 


[07/14] allura git commit: [#6107] ticket:748 Change email address to noreply@ if email posting is not allowed

Posted by he...@apache.org.
[#6107] ticket:748 Change email address to noreply@ if email posting is not allowed


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/a887e247
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/a887e247
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/a887e247

Branch: refs/heads/master
Commit: a887e2476363cbc93f65203d8102190ff8c23e04
Parents: 17fe263
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Sun Apr 26 23:14:16 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:23 2015 +0000

----------------------------------------------------------------------
 ForgeDiscussion/forgediscussion/model/forum.py | 7 ++++++-
 ForgeTracker/forgetracker/model/ticket.py      | 6 +++++-
 ForgeWiki/forgewiki/model/wiki.py              | 6 +++++-
 3 files changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/a887e247/ForgeDiscussion/forgediscussion/model/forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/model/forum.py b/ForgeDiscussion/forgediscussion/model/forum.py
index 5545cf0..d255c47 100644
--- a/ForgeDiscussion/forgediscussion/model/forum.py
+++ b/ForgeDiscussion/forgediscussion/model/forum.py
@@ -20,6 +20,7 @@ import logging
 from itertools import chain
 
 import pymongo
+from pylons import tmpl_context as c
 from ming import schema
 from ming.utils import LazyProperty
 from ming.orm import FieldProperty, RelationProperty, ForeignIdProperty, Mapper
@@ -78,7 +79,11 @@ class Forum(M.Discussion):
     def email_address(self):
         domain = '.'.join(
             reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
-        return '%s@%s%s' % (self.shortname.replace('/', '.'), domain, config.common_suffix)
+        if c.app.config.options.get('AllowEmailPosting', True):
+            local_part = self.shortname.replace('/', '.')
+        else:
+            local_part = 'noreply'
+        return '%s@%s%s' % (local_part, domain, config.common_suffix)
 
     @LazyProperty
     def announcements(self):

http://git-wip-us.apache.org/repos/asf/allura/blob/a887e247/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index e26f57a..e22a2b5 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -764,7 +764,11 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
     def email_address(self):
         domain = '.'.join(
             reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
-        return '%s@%s%s' % (self.ticket_num, domain, config.common_suffix)
+        if c.app.config.options.get('AllowEmailPosting', True):
+            local_part = self.ticket_num
+        else:
+            local_part = 'noreply'
+        return '%s@%s%s' % (local_part, domain, config.common_suffix)
 
     @property
     def email_subject(self):

http://git-wip-us.apache.org/repos/asf/allura/blob/a887e247/ForgeWiki/forgewiki/model/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index c79fd16..79bd698 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -160,7 +160,11 @@ class Page(VersionedArtifact, ActivityObject):
     def email_address(self):
         domain = '.'.join(
             reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
-        return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
+        if context.app.config.options.get('AllowEmailPosting', True):
+            local_part = self.title.replace('/', '.')
+        else:
+            local_part = 'noreply'
+        return '%s@%s%s' % (local_part, domain, config.common_suffix)
 
     @property
     def email_subject(self):


[06/14] allura git commit: [#6107] ticket:748 Remove mail link if email osting is not enabled

Posted by he...@apache.org.
[#6107] ticket:748 Remove mail link if email osting is not enabled


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/bb390250
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/bb390250
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/bb390250

Branch: refs/heads/master
Commit: bb390250c19553a8a28da27a5a1781a6cf4aaef4
Parents: 51cf013
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Mon Apr 27 20:00:10 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:23 2015 +0000

----------------------------------------------------------------------
 Allura/allura/templates/discussion/index.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/bb390250/Allura/allura/templates/discussion/index.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/discussion/index.html b/Allura/allura/templates/discussion/index.html
index cedcc16..11c987a 100644
--- a/Allura/allura/templates/discussion/index.html
+++ b/Allura/allura/templates/discussion/index.html
@@ -23,10 +23,10 @@
 {% block header %}{{h.really_unicode(discussion.name)}}{% endblock %}
 
 {% block actions %}
-  {% if discussion.email_address %}
+  {% if discussion.email_address and c.app.config.options.get('AllowEmailPosting', True) %}
     <a href="{{h.really_unicode(discussion.email_link(subject=None))}}" class="email" title="Send Email to Create a New Topic" ><b data-icon="{{g.icons['pencil'].char}}" class="ico {{g.icons['pencil'].css}}"></b></a>
-    <a href="feed" title="Feed" ><b data-icon="{{g.icons['feed'].char}}" class="ico {{g.icons['feed'].css}}"></b></a>
   {% endif %}
+  <a href="feed" title="Feed" ><b data-icon="{{g.icons['feed'].char}}" class="ico {{g.icons['feed'].css}}"></b></a>
 {% endblock %}
 
 {% block edit_box %}


[09/14] allura git commit: [#6107] ticket:748 Reimplemented allow_email_posting without @Property

Posted by he...@apache.org.
[#6107] ticket:748 Reimplemented allow_email_posting without @Property


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/a334bfaf
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/a334bfaf
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/a334bfaf

Branch: refs/heads/master
Commit: a334bfaf0d58379aad453d1b8f328027500eba36
Parents: b075475
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Thu Apr 30 21:48:51 2015 +0300
Committer: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Committed: Thu Apr 30 21:48:51 2015 +0300

----------------------------------------------------------------------
 ForgeWiki/forgewiki/wiki_main.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/a334bfaf/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index 9a2da41..5f15779 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -186,13 +186,13 @@ The wiki uses [Markdown](%s) syntax.
     def show_right_bar(self, show):
         self.config.options['show_right_bar'] = bool(show)
 
-    @Property
-    def allow_email_posting():
-        def fget(self):
-            return self.config.options.get('AllowEmailPosting', True)
+    @property
+    def allow_email_posting(self):
+        return self.config.options.get('AllowEmailPosting', True)
 
-        def fset(self, show):
-            self.config.options['AllowEmailPosting'] = bool(show)
+    @allow_email_posting.setter
+    def allow_email_posting(self, show):
+        self.config.options['AllowEmailPosting'] = bool(show)
 
     def main_menu(self):
         '''Apps should provide their entries to be added to the main nav


[05/14] allura git commit: [#6107] ticket:748 Use common noreply@ address

Posted by he...@apache.org.
[#6107] ticket:748 Use common noreply@ address


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/b0754759
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/b0754759
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/b0754759

Branch: refs/heads/master
Commit: b0754759b1ba5f4441e3212fd6a7e37bff9dc3b3
Parents: bb39025
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Mon Apr 27 20:00:28 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:23 2015 +0000

----------------------------------------------------------------------
 ForgeDiscussion/forgediscussion/model/forum.py | 10 ++++++----
 ForgeTracker/forgetracker/model/ticket.py      |  9 ++++-----
 ForgeWiki/forgewiki/model/wiki.py              | 11 ++++++-----
 3 files changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/b0754759/ForgeDiscussion/forgediscussion/model/forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/model/forum.py b/ForgeDiscussion/forgediscussion/model/forum.py
index d255c47..d4ad197 100644
--- a/ForgeDiscussion/forgediscussion/model/forum.py
+++ b/ForgeDiscussion/forgediscussion/model/forum.py
@@ -25,6 +25,8 @@ from ming import schema
 from ming.utils import LazyProperty
 from ming.orm import FieldProperty, RelationProperty, ForeignIdProperty, Mapper
 
+from tg import config as tg_config
+
 from allura import model as M
 from allura.model.notification import MailFooter
 from allura.lib import utils
@@ -77,13 +79,13 @@ class Forum(M.Discussion):
 
     @property
     def email_address(self):
-        domain = '.'.join(
-            reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
         if c.app.config.options.get('AllowEmailPosting', True):
+            domain = '.'.join(
+                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
             local_part = self.shortname.replace('/', '.')
+            return '%s@%s%s' % (local_part, domain, config.common_suffix)
         else:
-            local_part = 'noreply'
-        return '%s@%s%s' % (local_part, domain, config.common_suffix)
+            return tg_config.get('forgemail.return_path')
 
     @LazyProperty
     def announcements(self):

http://git-wip-us.apache.org/repos/asf/allura/blob/b0754759/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index e22a2b5..fdab276 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -762,13 +762,12 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
 
     @property
     def email_address(self):
-        domain = '.'.join(
-            reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
         if c.app.config.options.get('AllowEmailPosting', True):
-            local_part = self.ticket_num
+            domain = '.'.join(
+                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            return '%s@%s%s' % (self.ticket_num, domain, config.common_suffix)
         else:
-            local_part = 'noreply'
-        return '%s@%s%s' % (local_part, domain, config.common_suffix)
+            return tg_config.get('forgemail.return_path')
 
     @property
     def email_subject(self):

http://git-wip-us.apache.org/repos/asf/allura/blob/b0754759/ForgeWiki/forgewiki/model/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 79bd698..827a104 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -25,6 +25,8 @@ from ming import schema
 from ming.orm import FieldProperty, ForeignIdProperty, Mapper, session
 from ming.orm.declarative import MappedClass
 
+from tg import config as tg_config
+
 from allura.model import (
     VersionedArtifact,
     Snapshot,
@@ -158,13 +160,12 @@ class Page(VersionedArtifact, ActivityObject):
 
     @property
     def email_address(self):
-        domain = '.'.join(
-            reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
         if context.app.config.options.get('AllowEmailPosting', True):
-            local_part = self.title.replace('/', '.')
+            domain = '.'.join(
+                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
         else:
-            local_part = 'noreply'
-        return '%s@%s%s' % (local_part, domain, config.common_suffix)
+            return tg_config.get('forgemail.return_path')
 
     @property
     def email_subject(self):


[11/14] allura git commit: [#6107] ticket:748 Added option for allowing email postings to ForgeBlog app

Posted by he...@apache.org.
[#6107] ticket:748 Added option for allowing email postings to ForgeBlog app


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1eb76e43
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1eb76e43
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1eb76e43

Branch: refs/heads/master
Commit: 1eb76e43aa60d76bc037d584f39e28cc2af4cc64
Parents: 1ebfe01
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Thu Apr 30 22:15:39 2015 +0300
Committer: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Committed: Thu Apr 30 22:15:46 2015 +0300

----------------------------------------------------------------------
 ForgeBlog/forgeblog/main.py                        | 17 +++++++++++++++--
 ForgeBlog/forgeblog/model/blog.py                  | 10 +++++++---
 .../forgeblog/templates/blog/admin_options.html    |  8 ++++++++
 3 files changed, 30 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/1eb76e43/ForgeBlog/forgeblog/main.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/main.py b/ForgeBlog/forgeblog/main.py
index 160b94e..b4dcd4a 100644
--- a/ForgeBlog/forgeblog/main.py
+++ b/ForgeBlog/forgeblog/main.py
@@ -35,7 +35,7 @@ from webob import exc
 from ming.orm import session
 
 # Pyforge-specific imports
-from allura.app import Application, SitemapEntry
+from allura.app import Application, SitemapEntry, ConfigOption
 from allura.app import DefaultAdminController
 from allura.lib import helpers as h
 from allura.lib.search import search_app
@@ -90,6 +90,9 @@ class ForgeBlogApp(Application):
         'write': 'Create new blog entry.',
         'admin': 'Set permissions. Enable/disable commenting.',
     }
+    config_options = Application.config_options + [
+        ConfigOption('AllowEmailPosting', bool, True)
+    ]
     ordinal = 14
     exportable = True
     config_options = Application.config_options
@@ -144,6 +147,14 @@ class ForgeBlogApp(Application):
         else:
             return True
 
+    @property
+    def allow_email_posting(self):
+        return self.config.options.get('AllowEmailPosting', True)
+
+    @allow_email_posting.setter
+    def allow_email_posting(self, show):
+        self.config.options['AllowEmailPosting'] = bool(show)
+
     @h.exceptionless([], log)
     def sidebar_menu(self):
         base = c.app.url
@@ -404,9 +415,11 @@ class BlogAdminController(DefaultAdminController):
     @without_trailing_slash
     @expose()
     @require_post()
-    def set_options(self, show_discussion=False):
+    def set_options(self, show_discussion=False, allow_email_posting=False):
         self.app.config.options[
             'show_discussion'] = show_discussion and True or False
+        self.app.config.options[
+            'AllowEmailPosting'] = allow_email_posting and True or False
         flash('Blog options updated')
         redirect(h.really_unicode(c.project.url() + 'admin/tools')
                  .encode('utf-8'))

http://git-wip-us.apache.org/repos/asf/allura/blob/1eb76e43/ForgeBlog/forgeblog/model/blog.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/model/blog.py b/ForgeBlog/forgeblog/model/blog.py
index 835c5d2..5839d76 100644
--- a/ForgeBlog/forgeblog/model/blog.py
+++ b/ForgeBlog/forgeblog/model/blog.py
@@ -21,6 +21,7 @@ from datetime import datetime
 from random import randint
 
 from pylons import tmpl_context as c, app_globals as g
+from tg import config as tg_config
 from pymongo.errors import DuplicateKeyError
 
 from ming import schema
@@ -184,9 +185,12 @@ class BlogPost(M.VersionedArtifact, ActivityObject):
 
     @property
     def email_address(self):
-        domain = '.'.join(
-            reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
-        return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
+        if self.config.options.get('AllowEmailPosting', True):
+            domain = '.'.join(
+                reversed(self.app.url[1:-1].split('/'))).replace('_', '-')
+            return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
+        else:
+            return tg_config.get('forgemail.return_path')
 
     @staticmethod
     def make_base_slug(title, timestamp):

http://git-wip-us.apache.org/repos/asf/allura/blob/1eb76e43/ForgeBlog/forgeblog/templates/blog/admin_options.html
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/templates/blog/admin_options.html b/ForgeBlog/forgeblog/templates/blog/admin_options.html
index 8c549a0..586f099 100644
--- a/ForgeBlog/forgeblog/templates/blog/admin_options.html
+++ b/ForgeBlog/forgeblog/templates/blog/admin_options.html
@@ -26,6 +26,14 @@
         <span>{{app.show_discussion}}</span>
       {% endif %}
     </div>
+    <label class="grid-7">Allow posting replies via email:</label>
+    <div class="grid-6">
+      {% if allow_config %}
+        <input type="checkbox" name="allow_email_posting" id="allow_email_posting"{% if app.allow_email_posting %} checked="checked"{% endif %}/>
+      {% else %}
+        <span>{{app.allow_email_posting}}</span>
+      {% endif %}
+    </div>
     <div class="grid-13">&nbsp;</div>
     <hr/>
     <div class="grid-13">&nbsp;</div>


[12/14] allura git commit: [#6107] ticket:748 Show allow email posting option as True by default

Posted by he...@apache.org.
[#6107] ticket:748 Show allow email posting option as True by default


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/c307dd49
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/c307dd49
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/c307dd49

Branch: refs/heads/master
Commit: c307dd49d4b0e4728e6c7994b44d8be00bb984bb
Parents: 1eb76e4
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Thu Apr 30 22:16:47 2015 +0300
Committer: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Committed: Thu Apr 30 22:16:47 2015 +0300

----------------------------------------------------------------------
 ForgeDiscussion/forgediscussion/forum_main.py | 2 +-
 ForgeTracker/forgetracker/tracker_main.py     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/c307dd49/ForgeDiscussion/forgediscussion/forum_main.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index 5cba5f8..e66ec43 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -254,7 +254,7 @@ class ForumAdminController(DefaultAdminController):
         return dict(app=self.app,
                     form_value=dict(
                         PostingPolicy=self.app.config.options.get('PostingPolicy'),
-                        AllowEmailPosting=self.app.config.options.get('AllowEmailPosting')))
+                        AllowEmailPosting=self.app.config.options.get('AllowEmailPosting', True)))
 
     @expose('jinja:forgediscussion:templates/discussionforums/admin_forums.html')
     def forums(self, add_forum=None, **kw):

http://git-wip-us.apache.org/repos/asf/allura/blob/c307dd49/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index c1544c7..4d987dc 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1627,7 +1627,7 @@ class TrackerAdminController(DefaultAdminController):
                 'TicketMonitoringEmail'),
             TicketHelpNew=self.app.config.options.get('TicketHelpNew'),
             TicketHelpSearch=self.app.config.options.get('TicketHelpSearch'),
-            AllowEmailPosting=self.app.config.options.get('AllowEmailPosting'),
+            AllowEmailPosting=self.app.config.options.get('AllowEmailPosting', True),
         ))
 
     @expose()


[04/14] allura git commit: [#6107] ticket:748 Added option for allowing email postings to ForgeTracker app

Posted by he...@apache.org.
[#6107] ticket:748 Added option for allowing email postings to ForgeTracker app


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/9732fbb3
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/9732fbb3
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/9732fbb3

Branch: refs/heads/master
Commit: 9732fbb3a14e224fe0e64d126b20048802431270
Parents: 5eb6942
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Fri Apr 24 23:21:48 2015 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Wed Apr 29 09:40:22 2015 +0000

----------------------------------------------------------------------
 ForgeTracker/forgetracker/tracker_main.py  | 4 +++-
 ForgeTracker/forgetracker/widgets/admin.py | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/9732fbb3/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 055116f..c1544c7 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -238,7 +238,8 @@ class ForgeTrackerApp(Application):
         ConfigOption('TicketMonitoringEmail', str, ''),
         ConfigOption('TicketMonitoringType',
                      schema.OneOf('NewTicketsOnly', 'AllTicketChanges',
-                                  'NewPublicTicketsOnly', 'AllPublicTicketChanges'), None)
+                                  'NewPublicTicketsOnly', 'AllPublicTicketChanges'), None),
+        ConfigOption('AllowEmailPosting', bool, True)
     ]
     exportable = True
     searchable = True
@@ -1626,6 +1627,7 @@ class TrackerAdminController(DefaultAdminController):
                 'TicketMonitoringEmail'),
             TicketHelpNew=self.app.config.options.get('TicketHelpNew'),
             TicketHelpSearch=self.app.config.options.get('TicketHelpSearch'),
+            AllowEmailPosting=self.app.config.options.get('AllowEmailPosting'),
         ))
 
     @expose()

http://git-wip-us.apache.org/repos/asf/allura/blob/9732fbb3/ForgeTracker/forgetracker/widgets/admin.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/widgets/admin.py b/ForgeTracker/forgetracker/widgets/admin.py
index 8ad8d1c..586ce6f 100644
--- a/ForgeTracker/forgetracker/widgets/admin.py
+++ b/ForgeTracker/forgetracker/widgets/admin.py
@@ -34,6 +34,9 @@ class OptionsAdmin(ff.AdminForm):
             ew.Checkbox(
                 name='EnableVoting',
                 label='Enable voting on tickets'),
+            ew.Checkbox(
+                name='AllowEmailPosting',
+                label='Allow posting replies via email'),
             ew.TextField(
                 name='TicketMonitoringEmail',
                 label='Email ticket notifications to',