Merge lp:~rockstar/launchpad/not-logged-in-recipes into lp:launchpad

Proposed by Paul Hummer
Status: Merged
Approved by: Aaron Bentley
Approved revision: no longer in the source branch.
Merged at revision: 11603
Proposed branch: lp:~rockstar/launchpad/not-logged-in-recipes
Merge into: lp:launchpad
Diff against target: 90 lines (+27/-11)
3 files modified
lib/lp/code/browser/configure.zcml (+1/-1)
lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+17/-8)
lib/lp/testing/__init__.py (+9/-2)
To merge this branch: bzr merge lp:~rockstar/launchpad/not-logged-in-recipes
Reviewer Review Type Date Requested Status
Aaron Bentley (community) Approve
Review via email: mp+36049@code.launchpad.net

Description of the change

This branch just fixes an issue where a user that wasn't logged in was able to see the +request-builds page.

To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/code/browser/configure.zcml'
--- lib/lp/code/browser/configure.zcml 2010-08-24 02:17:19 +0000
+++ lib/lp/code/browser/configure.zcml 2010-09-20 19:16:56 +0000
@@ -1208,7 +1208,7 @@
1208 class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeRequestBuildsView"1208 class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeRequestBuildsView"
1209 name="+request-builds"1209 name="+request-builds"
1210 template="../templates/sourcepackagerecipe-request-builds.pt"1210 template="../templates/sourcepackagerecipe-request-builds.pt"
1211 permission="launchpad.View"/>1211 permission="launchpad.AnyPerson"/>
1212 </facet>1212 </facet>
1213 <facet facet="branches">1213 <facet facet="branches">
1214 <browser:defaultView1214 <browser:defaultView
12151215
=== modified file 'lib/lp/code/browser/tests/test_sourcepackagerecipe.py'
--- lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-09-01 03:25:36 +0000
+++ lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-09-20 19:16:56 +0000
@@ -46,7 +46,6 @@
46 ANONYMOUS,46 ANONYMOUS,
47 BrowserTestCase,47 BrowserTestCase,
48 login,48 login,
49 logout,
50 person_logged_in,49 person_logged_in,
51 )50 )
52from lp.testing.factory import remove_security_proxy_and_shout_at_engineer51from lp.testing.factory import remove_security_proxy_and_shout_at_engineer
@@ -103,17 +102,12 @@
103 return branch102 return branch
104103
105 def test_create_new_recipe_not_logged_in(self):104 def test_create_new_recipe_not_logged_in(self):
106 from canonical.launchpad.testing.pages import setupBrowser
107 product = self.factory.makeProduct(105 product = self.factory.makeProduct(
108 name='ratatouille', displayname='Ratatouille')106 name='ratatouille', displayname='Ratatouille')
109 branch = self.factory.makeBranch(107 branch = self.factory.makeBranch(
110 owner=self.chef, product=product, name='veggies')108 owner=self.chef, product=product, name='veggies')
111 branch_url = canonical_url(branch)109
112 logout()110 browser = self.getViewBrowser(branch, no_login=True)
113
114 browser = setupBrowser()
115 browser.open(branch_url)
116
117 self.assertRaises(111 self.assertRaises(
118 Unauthorized, browser.getLink('Create packaging recipe').click)112 Unauthorized, browser.getLink('Create packaging recipe').click)
119113
@@ -689,6 +683,21 @@
689 set([2605]),683 set([2605]),
690 set(build.buildqueue_record.lastscore for build in builds))684 set(build.buildqueue_record.lastscore for build in builds))
691685
686 def test_request_builds_action_not_logged_in(self):
687 """Requesting a build creates pending builds."""
688 woody = self.factory.makeDistroSeries(
689 name='woody', displayname='Woody',
690 distribution=self.ppa.distribution)
691 naked_woody = removeSecurityProxy(woody)
692 naked_woody.nominatedarchindep = woody.newArch(
693 'i386', ProcessorFamily.get(1), False, self.factory.makePerson(),
694 supports_virtualized=True)
695 recipe = self.makeRecipe()
696
697 browser = self.getViewBrowser(recipe, no_login=True)
698 self.assertRaises(
699 Unauthorized, browser.getLink('Request build(s)').click)
700
692 def test_request_builds_archive(self):701 def test_request_builds_archive(self):
693 recipe = self.factory.makeSourcePackageRecipe()702 recipe = self.factory.makeSourcePackageRecipe()
694 ppa2 = self.factory.makeArchive(703 ppa2 = self.factory.makeArchive(
695704
=== modified file 'lib/lp/testing/__init__.py'
--- lib/lp/testing/__init__.py 2010-09-20 12:56:53 +0000
+++ lib/lp/testing/__init__.py 2010-09-20 19:16:56 +0000
@@ -691,10 +691,17 @@
691 self.assertIsNot(691 self.assertIsNot(
692 None, pattern.search(normalise_whitespace(text)), text)692 None, pattern.search(normalise_whitespace(text)), text)
693693
694 def getViewBrowser(self, context, view_name=None):694 def getViewBrowser(self, context, view_name=None, no_login=False):
695 login(ANONYMOUS)695 login(ANONYMOUS)
696 url = canonical_url(context, view_name=view_name)696 url = canonical_url(context, view_name=view_name)
697 return self.getUserBrowser(url, self.user)697 logout()
698 if no_login:
699 from canonical.launchpad.testing.pages import setupBrowser
700 browser = setupBrowser()
701 browser.open(url)
702 return browser
703 else:
704 return self.getUserBrowser(url, self.user)
698705
699 def getMainText(self, context, view_name=None):706 def getMainText(self, context, view_name=None):
700 """Return the main text of a context's page."""707 """Return the main text of a context's page."""