def test_project_admins_can_delete_subprojects_that_they_are_not_admin_of(self): self.project.users.add(self.user) self.assertFalse(AdminPermission.is_admin(self.user, self.subproject)) response = self.client.get('/dashboard/my-mainproject/subprojects/delete/my-subproject/') self.assertEqual(response.status_code, 302) self.assertTrue(self.subproject not in [r.child for r in self.project.subprojects.all()])
def test_project_admins_can_delete_subprojects_that_they_are_not_admin_of(self): self.project.users.add(self.user) self.assertFalse(AdminPermission.is_admin(self.user, self.subproject)) response = self.client.get('/dashboard/my-mainproject/subprojects/delete/my-subproject/') self.assertEqual(response.status_code, 302) self.assertTrue(self.subproject not in [r.child for r in self.project.subprojects.all()])
def clean_subproject(self): subproject_name = self.cleaned_data['subproject'] subproject_qs = Project.objects.filter(slug=subproject_name) if not subproject_qs.exists(): raise forms.ValidationError((_("Project %(name)s does not exist") % {'name': subproject_name})) subproject = subproject_qs.first() if not AdminPermission.is_admin(self.user, subproject): raise forms.ValidationError(_( 'You need to be admin of {name} in order to add it as ' 'a subproject.'.format(name=subproject_name))) return subproject
def clean_subproject(self): subproject_name = self.cleaned_data['subproject'] subproject_qs = Project.objects.filter(slug=subproject_name) if not subproject_qs.exists(): raise forms.ValidationError( (_("Project %(name)s does not exist") % { 'name': subproject_name })) subproject = subproject_qs.first() if not AdminPermission.is_admin(self.user, subproject): raise forms.ValidationError( _('You need to be admin of {name} in order to add it as ' 'a subproject.'.format(name=subproject_name))) return subproject
def clean_subproject(self): """Normalize subproject field Does lookup on against :py:cls:`Project` to ensure matching project exists. Return the :py:cls:`Project` object instead. """ subproject_name = self.cleaned_data['subproject'] subproject_qs = Project.objects.filter(slug=subproject_name) if not subproject_qs.exists(): raise forms.ValidationError((_("Project %(name)s does not exist") % {'name': subproject_name})) subproject = subproject_qs.first() if not AdminPermission.is_admin(self.user, subproject): raise forms.ValidationError(_( 'You need to be admin of {name} in order to add it as ' 'a subproject.'.format(name=subproject_name))) return subproject
def clean_subproject(self): """Normalize subproject field Does lookup on against :py:class:`Project` to ensure matching project exists. Return the :py:class:`Project` object instead. """ subproject_name = self.cleaned_data['subproject'] subproject_qs = Project.objects.filter(slug=subproject_name) if not subproject_qs.exists(): raise forms.ValidationError((_("Project %(name)s does not exist") % {'name': subproject_name})) subproject = subproject_qs.first() if not AdminPermission.is_admin(self.user, subproject): raise forms.ValidationError(_( 'You need to be admin of {name} in order to add it as ' 'a subproject.'.format(name=subproject_name))) return subproject