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

[05/11] git commit: [#5650] ticket:323 Permission checks for private forums

[#5650] ticket:323 Permission checks for private forums


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

Branch: refs/heads/master
Commit: 2be7cd4e7a1572ee866455f88b42ff71c5c1f118
Parents: 9866912
Author: Igor Bondarenko <je...@gmail.com>
Authored: Tue May 7 10:49:03 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Jun 26 22:56:12 2013 +0000

----------------------------------------------------------------------
 ForgeDiscussion/forgediscussion/controllers/root.py  |  2 +-
 .../forgediscussion/tests/functional/test_rest.py    | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2be7cd4e/ForgeDiscussion/forgediscussion/controllers/root.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/controllers/root.py b/ForgeDiscussion/forgediscussion/controllers/root.py
index 11d6c6c..67e51ca 100644
--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -237,7 +237,7 @@ class RootRestController(BaseController):
                                  num_topics=f.num_topics,
                                  last_post=f.last_post,
                                  url=h.absurl('/rest' + f.url()))
-                            for f in forums])
+                            for f in forums if has_access(f, 'read')])
         json['limit'] = limit
         json['page'] = page
         json['count'] = count

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2be7cd4e/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
index 45ef742..9f22589 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
@@ -172,3 +172,18 @@ class TestRootRestController(TestDiscussionApiBase):
         self.app.get('/rest/p/test/discussion/general/thread/%s/' % t._id,
                      extra_environ={'username': '*anonymous'},
                      status=401)
+
+    def test_private_forums(self):
+        r = self.app.get('/p/test/admin/discussion/forums')
+        form = r.forms[0]
+        if form['forum-0.shortname'].value == u'héllo':
+            form['forum-0.members_only'] = True
+        else:
+            form['forum-1.members_only'] = True
+        form.submit()
+        r = self.api_get('/rest/p/test/discussion/')
+        assert_equal(len(r.json['forums']), 2)
+        r = self.app.get('/rest/p/test/discussion/',
+                         extra_environ={'username': '*anonymous'})
+        assert_equal(len(r.json['forums']), 1)
+        assert_equal(r.json['forums'][0]['shortname'], 'general')