Skip to content

Commit c9550d7

Browse files
Use privacy.backend.AdminPermission.is_admin for testing project admins
Based on feedback: #1503 (comment)
1 parent 74a9c3a commit c9550d7

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

readthedocs/projects/forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from readthedocs.redirects.models import Redirect
1515
from readthedocs.projects import constants
1616
from readthedocs.projects.models import Project, EmailHook, WebHook
17+
from readthedocs.privacy.loader import AdminPermission
1718

1819

1920
class ProjectForm(forms.ModelForm):
@@ -320,7 +321,7 @@ def clean_subproject(self):
320321
raise forms.ValidationError((_("Project %(name)s does not exist")
321322
% {'name': subproject_name}))
322323
subproject = subproject_qs.first()
323-
if not subproject.user_is_admin(self.user):
324+
if not AdminPermission.is_admin(self.user, subproject):
324325
raise forms.ValidationError(_(
325326
'You need to be admin of {name} in order to add it as '
326327
'a subproject.'.format(name=subproject_name)))

readthedocs/projects/models.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,6 @@ def sync_supported_versions(self):
253253
verbose_name__in=supported).update(supported=False)
254254
self.versions.filter(verbose_name=LATEST_VERBOSE_NAME).update(supported=True)
255255

256-
def user_is_admin(self, user):
257-
return user in self.users.all()
258-
259256
def save(self, *args, **kwargs):
260257
first_save = self.pk is None
261258
if not self.slug:

readthedocs/rtd_tests/tests/test_views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from readthedocs.builds.constants import LATEST
99
from readthedocs.projects.models import Project
1010
from readthedocs.projects.forms import UpdateProjectForm
11+
from readthedocs.privacy.loader import AdminPermission
1112

1213

1314
class Testmaker(TestCase):
@@ -200,7 +201,7 @@ def test_admins_can_delete_subprojects(self):
200201

201202
def test_project_admins_can_delete_subprojects_that_they_are_not_admin_of(self):
202203
self.project.users.add(self.user)
203-
self.assertFalse(self.subproject.user_is_admin(self.user))
204+
self.assertFalse(AdminPermission.is_admin(self.user, self.subproject))
204205

205206
response = self.client.get('/dashboard/my-mainproject/subprojects/delete/my-subproject/')
206207
self.assertEqual(response.status_code, 302)

0 commit comments

Comments
 (0)