You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2013/12/13 06:08:13 UTC

[27/45] git commit: [#6888] ticket:495 Store option in preferences, don't use extra field on User

[#6888] ticket:495 Store option in preferences, don't use extra field on User


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

Branch: refs/heads/tv/6942
Commit: 55e2b11be8a89482282a611606481adb533cb759
Parents: 19b00b3
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Nov 28 11:57:28 2013 +0000
Committer: Cory Johns <ad...@users.sf.net>
Committed: Thu Dec 12 15:41:40 2013 +0000

----------------------------------------------------------------------
 Allura/allura/controllers/auth.py                        |  4 ++--
 Allura/allura/ext/user_profile/templates/user_index.html |  2 +-
 Allura/allura/ext/user_profile/user_main.py              |  4 ++--
 Allura/allura/lib/plugin.py                              |  3 +++
 Allura/allura/model/auth.py                              |  4 ++--
 Allura/allura/templates/user_prefs.html                  |  4 ++--
 Allura/allura/tests/functional/test_auth.py              |  8 ++++----
 Allura/allura/tests/functional/test_user_profile.py      | 11 +++--------
 8 files changed, 19 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/controllers/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 7a58eda..6116570 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -509,8 +509,8 @@ class PreferencesController(BaseController):
 
     @expose()
     @require_post()
-    def user_message(self, allow_user_message=None):
-        c.user.allow_user_message = allow_user_message is not None
+    def user_message(self, allow_user_messages=None):
+        c.user.set_pref('allow_user_messages', allow_user_messages is not None)
         redirect(request.referer)
 
 class UserInfoController(BaseController):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/ext/user_profile/templates/user_index.html
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/user_profile/templates/user_index.html b/Allura/allura/ext/user_profile/templates/user_index.html
index f3639d1..6052f75 100644
--- a/Allura/allura/ext/user_profile/templates/user_index.html
+++ b/Allura/allura/ext/user_profile/templates/user_index.html
@@ -229,7 +229,7 @@
       </div>
     {% endif %}
 
-    {% if user.get_pref('email_address') and c.user.get_pref('email_address') and user.allow_user_message %}
+    {% if user.get_pref('email_address') and c.user.get_pref('email_address') and user.get_pref('allow_user_messages') %}
     <div class="grid-24">
       <b><a href="send_message">Send me a message</a></b>
     </div>

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/ext/user_profile/user_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/user_profile/user_main.py b/Allura/allura/ext/user_profile/user_main.py
index c57fb60..b6342f8 100644
--- a/Allura/allura/ext/user_profile/user_main.py
+++ b/Allura/allura/ext/user_profile/user_main.py
@@ -107,8 +107,8 @@ class UserProfileController(BaseController, FeedController):
                     'an email address associated with their account.', 'info')
             redirect(request.referer)
 
-        if not to_user.allow_user_message:
-            flash('This user has disabled user message', 'info')
+        if not to_user.get_pref('allow_user_messages'):
+            flash('This user has disabled direct email messages', 'info')
             redirect(request.referer)
 
     @expose('jinja:allura.ext.user_profile:templates/user_index.html')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 0c6c3b1..955b741 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -949,6 +949,9 @@ class LocalUserPreferencesProvider(UserPreferencesProvider):
 
     def get_pref(self, user, pref_name):
         if pref_name in user.preferences:
+            if pref_name == 'allow_user_messages' and user.preferences[pref_name] is None:
+                # allow_user_messages should be True by default
+                user.preferences[pref_name] = True
             return user.preferences[pref_name]
         else:
             return getattr(user, pref_name)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/model/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index f7a8705..6d5972e 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -319,7 +319,8 @@ class User(MappedClass, ActivityNode, ActivityObject):
     preferences=FieldProperty(dict(
             results_per_page=int,
             email_address=str,
-            email_format=str))
+            email_format=str,
+            allow_user_messages=bool))
 
     #Personal data
     sex=FieldProperty(
@@ -353,7 +354,6 @@ class User(MappedClass, ActivityNode, ActivityObject):
 
     #Statistics
     stats_id = FieldProperty(S.ObjectId, if_missing=None)
-    allow_user_message = FieldProperty(bool, if_missing=True)
 
     def can_send_user_message(self):
         """Return true if User is permitted to send a mesage to another user.

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/templates/user_prefs.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/user_prefs.html b/Allura/allura/templates/user_prefs.html
index 6f9e155..185712f 100644
--- a/Allura/allura/templates/user_prefs.html
+++ b/Allura/allura/templates/user_prefs.html
@@ -162,8 +162,8 @@
     <h2>User Messages</h2>
     <form method="POST" action="user_message">
     <div class="grid-19">
-        <input type="checkbox" id="allow_user_message" name="allow_user_message" {% if c.user.allow_user_message %} checked {% endif %}>
-        <label for="allow_user_message">Allow user messages</label>
+        <input type="checkbox" id="allow_user_messages" name="allow_user_messages" {% if c.user.get_pref('allow_user_messages') %} checked {% endif %}>
+        <label for="allow_user_messages">Allow another user to send me direct email messages</label>
     </div>
     <label class="grid-4">&nbsp;</label>
     <div class="grid-19">

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index cad16dd..242d31b 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -714,11 +714,11 @@ class TestPreferences(TestController):
 
     @td.with_user_project('test-admin')
     def test_user_message(self):
-        assert M.User.query.get(username='test-admin').allow_user_message
+        assert M.User.query.get(username='test-admin').get_pref('allow_user_messages')
         self.app.post('/auth/preferences/user_message')
-        assert not M.User.query.get(username='test-admin').allow_user_message
-        self.app.post('/auth/preferences/user_message', params={'allow_user_message': 'on'})
-        assert M.User.query.get(username='test-admin').allow_user_message
+        assert not M.User.query.get(username='test-admin').get_pref('allow_user_messages')
+        self.app.post('/auth/preferences/user_message', params={'allow_user_messages': 'on'})
+        assert M.User.query.get(username='test-admin').get_pref('allow_user_messages')
 
 
 class TestPasswordReset(TestController):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/55e2b11b/Allura/allura/tests/functional/test_user_profile.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_user_profile.py b/Allura/allura/tests/functional/test_user_profile.py
index fae35e5..cc90e2b 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -134,17 +134,12 @@ class TestUserProfile(TestController):
         assert '<a href="send_message">Send me a message</a>' not in r
 
     @td.with_user_project('test-user')
-    def test_allow_user_message(self):
+    def test_allow_user_messages(self):
         User.by_username('test-admin').set_pref('email_address', 'admin@example.com')
         test_user = User.by_username('test-user')
         test_user.set_pref('email_address', 'user@example.com')
-        test_user.allow_user_message = False
+        test_user.set_pref('allow_user_messages', False)
         r = self.app.get('/u/test-user/profile')
         assert '<a href="send_message">Send me a message</a>' not in r
         r = self.app.get('/u/test-user/profile/send_message', status=302)
-        assert 'This user has disabled user message' in self.webflash(r)
-
-
-
-
-
+        assert 'This user has disabled direct email messages' in self.webflash(r)