Skip to content

Commit ebf9a40

Browse files
humitosagjohnson
authored andcommitted
Do not show Build button when user is not project admin (readthedocs#3309)
* Do not show Build button when user is not project admin Closes readthedocs#3303 * Add test to check for Build section * Fix old test to make sure a public branch is listed
1 parent 08a4349 commit ebf9a40

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

readthedocs/rtd_tests/tests/test_privacy.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,12 @@ def test_private_repo(self):
7575
self.client.login(username='eric', password='test')
7676
r = self.client.get('/projects/django-kong/')
7777
self.assertEqual(r.status_code, 200)
78+
# Build button should appear here
79+
self.assertContains(r, 'Build a version')
7880
r = self.client.get('/projects/django-kong/builds/')
7981
self.assertEqual(r.status_code, 200)
82+
# Build button should appear here
83+
self.assertContains(r, 'Build Version:')
8084
r = self.client.get('/projects/django-kong/downloads/')
8185
self.assertEqual(r.status_code, 200)
8286

@@ -100,16 +104,24 @@ def test_public_repo(self):
100104
self.client.login(username='eric', password='test')
101105
r = self.client.get('/projects/django-kong/')
102106
self.assertEqual(r.status_code, 200)
107+
# Build button should appear here
108+
self.assertContains(r, 'Build a version')
103109
r = self.client.get('/projects/django-kong/builds/')
104110
self.assertEqual(r.status_code, 200)
111+
# Build button should appear here
112+
self.assertContains(r, 'Build Version:')
105113
r = self.client.get('/projects/django-kong/downloads/')
106114
self.assertEqual(r.status_code, 200)
107115

108116
self.client.login(username='tester', password='test')
109117
r = self.client.get('/projects/django-kong/')
110118
self.assertEqual(r.status_code, 200)
119+
# Build button shouldn't appear here
120+
self.assertNotContains(r, 'Build a version')
111121
r = self.client.get('/projects/django-kong/builds/')
112122
self.assertEqual(r.status_code, 200)
123+
# Build button shouldn't appear here
124+
self.assertNotContains(r, 'Build Version:')
113125
r = self.client.get('/projects/django-kong/downloads/')
114126
self.assertEqual(r.status_code, 200)
115127

@@ -138,13 +150,14 @@ def test_public_branch(self):
138150

139151
self.client.login(username='eric', password='test')
140152
Version.objects.create(project=kong, identifier='test id',
141-
verbose_name='test verbose', slug='test-slug', active=True)
153+
verbose_name='test verbose', slug='test-slug',
154+
active=True, built=True)
142155
self.assertEqual(Version.objects.count(), 2)
143156
self.assertEqual(Version.objects.all()[0].privacy_level, 'public')
144157
r = self.client.get('/projects/django-kong/')
145158
self.assertContains(r, 'test-slug')
146159

147-
# Make sure it doesn't show up as tester
160+
# Make sure it does show up as tester
148161
self.client.login(username='tester', password='test')
149162
r = self.client.get('/projects/django-kong/')
150163
self.assertContains(r, 'test-slug')

readthedocs/templates/builds/build_list.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
{% load i18n %}
44

55
{% load pagination_tags %}
6+
{% load privacy_tags %}
67
{% load projects_tags %}
78

89
{% block title %}Builds{% endblock %}
@@ -37,7 +38,7 @@
3738
<div class="module-wrapper">
3839

3940
{% block build_versions %}
40-
{% if versions %}
41+
{% if versions and request.user|is_admin:project %}
4142
<div class="module-header">
4243
<div style="float:right;">
4344
<form method="post" action="{% url "builds_project_list" project.slug %}">

readthedocs/templates/core/project_details.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ <h3>{% trans "Versions" %}</h3>
5555
</div>
5656

5757
{% block build_versions %}
58-
{% if versions %}
58+
{% if versions and request.user|is_admin:project %}
5959
<div class="build_a_version">
6060
<h3>{% trans "Build a version" %}</h3>
6161
<div class="version_right">

0 commit comments

Comments
 (0)