|
@@ -384,6 +384,65 @@ class OrganizationDashboardDetailsDeleteTest(OrganizationDashboardDetailsTestCas
|
|
|
assert response.status_code == 403
|
|
|
assert response.data == {"detail": "You do not have permission to perform this action."}
|
|
|
|
|
|
+ def test_disallow_delete_all_projects_dashboard_when_no_open_membership(self):
|
|
|
+
|
|
|
+ self.organization.flags.allow_joinleave = False
|
|
|
+ self.organization.save()
|
|
|
+
|
|
|
+ dashboard = Dashboard.objects.create(
|
|
|
+ title="Dashboard For All Projects",
|
|
|
+ created_by_id=self.user.id,
|
|
|
+ organization=self.organization,
|
|
|
+ filters={"all_projects": True},
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+ user_no_team = self.create_user(is_superuser=False)
|
|
|
+ self.create_member(
|
|
|
+ user=user_no_team, organization=self.organization, role="member", teams=[]
|
|
|
+ )
|
|
|
+ self.login_as(user_no_team)
|
|
|
+
|
|
|
+ response = self.do_request("delete", self.url(dashboard.id))
|
|
|
+ assert response.status_code == 403
|
|
|
+ assert response.data == {"detail": "You do not have permission to perform this action."}
|
|
|
+
|
|
|
+
|
|
|
+ self.owner = self.create_member(
|
|
|
+ user=self.create_user(), organization=self.organization, role="owner"
|
|
|
+ )
|
|
|
+ self.login_as(self.owner)
|
|
|
+ response = self.do_request("delete", self.url(dashboard.id))
|
|
|
+ assert response.status_code == 204
|
|
|
+
|
|
|
+ def test_disallow_delete_my_projects_dashboard_when_no_open_membership(self):
|
|
|
+
|
|
|
+ self.organization.flags.allow_joinleave = False
|
|
|
+ self.organization.save()
|
|
|
+
|
|
|
+ dashboard = Dashboard.objects.create(
|
|
|
+ title="Dashboard For My Projects",
|
|
|
+ created_by_id=self.user.id,
|
|
|
+ organization=self.organization,
|
|
|
+
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+ user_no_team = self.create_user(is_superuser=False)
|
|
|
+ self.create_member(
|
|
|
+ user=user_no_team, organization=self.organization, role="member", teams=[]
|
|
|
+ )
|
|
|
+ self.login_as(user_no_team)
|
|
|
+
|
|
|
+ response = self.do_request("delete", self.url(dashboard.id))
|
|
|
+ assert response.status_code == 403
|
|
|
+ assert response.data == {"detail": "You do not have permission to perform this action."}
|
|
|
+
|
|
|
+
|
|
|
+ self.login_as(self.user)
|
|
|
+ response = self.do_request("delete", self.url(dashboard.id))
|
|
|
+ assert response.status_code == 204
|
|
|
+
|
|
|
def test_dashboard_does_not_exist(self):
|
|
|
response = self.do_request("delete", self.url(1234567890))
|
|
|
assert response.status_code == 404
|