Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 35 additions & 63 deletions promgen/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ def get_queryset(self):


class ServiceDetail(PromgenGuardianPermissionMixin, DetailView):
permission_required = ["service_admin", "service_editor", "service_viewer"]
permission_required = permissions.SERVICE_VIEWER_AND_HIGHER_PERMS
queryset = models.Service.objects.prefetch_related(
"rule_set",
"notifiers",
Expand Down Expand Up @@ -412,7 +412,7 @@ def post(self, request, *args, **kwargs):


class ProjectDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["service_admin", "project_admin"]
permission_required = permissions.PROJECT_ADMIN_AND_HIGHER_PERMS
model = models.Project

def get_success_url(self):
Expand All @@ -433,7 +433,7 @@ def post(self, request, *args, **kwargs):


class NotifierUpdate(PromgenGuardianPermissionMixin, UpdateView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Sender
form_class = forms.NotifierUpdate

Expand Down Expand Up @@ -485,7 +485,7 @@ def post(self, request, pk):


class NotifierDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Sender

def get_success_url(self):
Expand All @@ -497,14 +497,7 @@ def get_success_url(self):


class NotifierTest(PromgenGuardianPermissionMixin, View):
permission_required = [
"service_admin",
"service_editor",
"service_viewer",
"project_admin",
"project_editor",
"project_viewer",
]
permission_required = permissions.PROJECT_VIEWER_AND_HIGHER_PERMS

def post(self, request, pk):
sender = get_object_or_404(models.Sender, id=pk)
Expand All @@ -526,15 +519,15 @@ def get_check_permission_object(self):


class ExporterDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Exporter

def get_success_url(self):
return reverse("project-detail", args=[self.object.project_id]) + "#exporters"


class ExporterToggle(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

def post(self, request, pk):
exporter = get_object_or_404(models.Exporter, id=pk)
Expand All @@ -552,7 +545,7 @@ def on_perm_check_fail(self, request):


class NotifierToggle(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

def post(self, request, pk):
sender = get_object_or_404(models.Sender, id=pk)
Expand All @@ -570,7 +563,7 @@ def on_perm_check_fail(self, request):


class RuleDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Rule

def get_permission_denied_message(self):
Expand All @@ -591,7 +584,7 @@ def get_success_url(self):


class RuleToggle(PromgenGuardianPermissionMixin, SingleObjectMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Rule

def get_permission_denied_message(self):
Expand All @@ -612,22 +605,15 @@ def on_perm_check_fail(self, request):


class HostDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["project_admin", "service_admin", "project_editor", "service_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Host

def get_success_url(self):
return self.object.farm.get_absolute_url()


class ProjectDetail(PromgenGuardianPermissionMixin, DetailView):
permission_required = [
"service_admin",
"service_editor",
"service_viewer",
"project_admin",
"project_editor",
"project_viewer",
]
permission_required = permissions.PROJECT_VIEWER_AND_HIGHER_PERMS
queryset = models.Project.objects.prefetch_related(
"rule_set",
"rule_set__parent",
Expand Down Expand Up @@ -672,14 +658,7 @@ def get_queryset(self):


class FarmDetail(PromgenGuardianPermissionMixin, DetailView):
permission_required = [
"project_admin",
"service_admin",
"project_editor",
"service_editor",
"project_viewer",
"service_viewer",
]
permission_required = permissions.PROJECT_VIEWER_AND_HIGHER_PERMS
model = models.Farm

def get_context_data(self, **kwargs):
Expand All @@ -689,7 +668,7 @@ def get_context_data(self, **kwargs):


class FarmUpdate(PromgenGuardianPermissionMixin, UpdateView):
permission_required = ["project_admin", "service_admin", "project_editor", "service_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Farm
button_label = _("Update Farm")
template_name = "promgen/farm_update.html"
Expand All @@ -710,7 +689,7 @@ def form_valid(self, form):


class FarmDelete(PromgenGuardianPermissionMixin, RedirectView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
pattern_name = "farm-detail"

def post(self, request, pk):
Expand All @@ -724,7 +703,7 @@ def get_check_permission_object(self):


class UnlinkFarm(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

def post(self, request, pk):
project = get_object_or_404(models.Project, id=pk)
Expand Down Expand Up @@ -786,7 +765,7 @@ def get_context_data(self, **kwargs):


class RulesOverride(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

def post(self, request, pk):
original = get_object_or_404(models.Rule, id=pk)
Expand Down Expand Up @@ -824,7 +803,7 @@ def post(self, request, pk):


class FarmConvert(PromgenGuardianPermissionMixin, RedirectView):
permission_required = ["project_admin", "service_admin", "project_editor", "service_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
pattern_name = "farm-detail"

def post(self, request, pk):
Expand Down Expand Up @@ -853,7 +832,7 @@ def get_check_permission_object(self):


class FarmLink(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

def get(self, request, pk, source):
if source == discovery.FARM_DEFAULT:
Expand Down Expand Up @@ -890,7 +869,7 @@ def get_check_permission_object(self):


class ExporterRegister(PromgenGuardianPermissionMixin, FormView, mixins.ProjectMixin):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Exporter
template_name = "promgen/exporter_form.html"
form_class = forms.ExporterForm
Expand Down Expand Up @@ -935,7 +914,7 @@ def post(self, request, pk):


class URLRegister(PromgenGuardianPermissionMixin, FormView, mixins.ProjectMixin):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.URL
form_class = forms.URLForm

Expand All @@ -954,7 +933,7 @@ def get_check_permission_object(self):


class URLDelete(PromgenGuardianPermissionMixin, DeleteView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.URL

def get_success_url(self):
Expand All @@ -979,7 +958,7 @@ def get_queryset(self):


class ProjectRegister(PromgenGuardianPermissionMixin, CreateView):
permission_required = ["service_admin", "service_editor"]
permission_required = permissions.SERVICE_EDITOR_AND_HIGHER_PERMS
button_label = _("Register Project")
model = models.Project
form_class = forms.ProjectRegister
Expand Down Expand Up @@ -1013,7 +992,7 @@ def get_check_permission_object(self):


class ProjectUpdate(PromgenGuardianPermissionMixin, UpdateView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Project
button_label = _("Project Update")
template_name = "promgen/project_form.html"
Expand Down Expand Up @@ -1045,7 +1024,7 @@ def form_valid(self, form):


class ServiceUpdate(PromgenGuardianPermissionMixin, UpdateView):
permission_required = ["service_admin", "service_editor"]
permission_required = permissions.SERVICE_EDITOR_AND_HIGHER_PERMS
button_label = _("Update Service")
form_class = forms.ServiceUpdate
model = models.Service
Expand All @@ -1062,14 +1041,7 @@ def form_valid(self, form):


class RuleDetail(PromgenGuardianPermissionMixin, DetailView):
permission_required = [
"service_admin",
"service_editor",
"service_viewer",
"project_admin",
"project_editor",
"project_viewer",
]
permission_required = permissions.PROJECT_VIEWER_AND_HIGHER_PERMS

def get_queryset(self):
overrides = models.Rule.objects.filter(parent_id=self.kwargs["pk"])
Expand Down Expand Up @@ -1112,7 +1084,7 @@ def get_object(self, queryset=None):


class RuleUpdate(PromgenGuardianPermissionMixin, UpdateView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS

queryset = models.Rule.objects.prefetch_related(
"content_object", "overrides", "overrides__content_object"
Expand Down Expand Up @@ -1171,7 +1143,7 @@ def post(self, request, *args, **kwargs):


class AlertRuleRegister(PromgenGuardianPermissionMixin, mixins.RuleFormMixin, FormView):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Rule
template_name = "promgen/rule_register.html"
form_class = forms.AlertRuleForm
Expand Down Expand Up @@ -1229,7 +1201,7 @@ def post(self, request, *args, **kwargs):


class FarmRegister(PromgenGuardianPermissionMixin, FormView, mixins.ProjectMixin):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Farm
button_label = _("Register Farm")
template_name = "promgen/farm_register.html"
Expand Down Expand Up @@ -1266,7 +1238,7 @@ def get_check_permission_object(self):
class ProjectNotifierRegister(
PromgenGuardianPermissionMixin, mixins.NotifierFormMixin, mixins.ProjectMixin
):
permission_required = ["service_admin", "service_editor", "project_admin", "project_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Sender
template_name = "promgen/notifier_form.html"

Expand All @@ -1291,7 +1263,7 @@ def get_check_permission_object(self):
class ServiceNotifierRegister(
PromgenGuardianPermissionMixin, mixins.NotifierFormMixin, mixins.ServiceMixin
):
permission_required = ["service_admin", "service_editor"]
permission_required = permissions.SERVICE_EDITOR_AND_HIGHER_PERMS
model = models.Sender
template_name = "promgen/notifier_form.html"

Expand Down Expand Up @@ -1351,7 +1323,7 @@ def form_invalid(self, form):


class HostRegister(PromgenGuardianPermissionMixin, FormView):
permission_required = ["project_admin", "service_admin", "project_editor", "service_editor"]
permission_required = permissions.PROJECT_EDITOR_AND_HIGHER_PERMS
model = models.Host
template_name = "promgen/host_form.html"
form_class = forms.HostForm
Expand Down Expand Up @@ -1845,7 +1817,7 @@ def post(self, request):


class PermissionAssign(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "project_admin"]
permission_required = permissions.PROJECT_ADMIN_AND_HIGHER_PERMS

def post(self, request):
obj = self.get_object()
Expand Down Expand Up @@ -1891,7 +1863,7 @@ def get_object(self):


class PermissionDelete(PromgenGuardianPermissionMixin, View):
permission_required = ["service_admin", "project_admin"]
permission_required = permissions.PROJECT_ADMIN_AND_HIGHER_PERMS

def post(self, request):
obj = self.get_object()
Expand Down Expand Up @@ -2012,7 +1984,7 @@ def get_queryset(self):


class GroupDetail(PromgenGuardianPermissionMixin, DetailView):
permission_required = ["group_admin", "group_member"]
permission_required = permissions.GROUP_MEMBER_AND_HIGHER_PERMS
model = models.Group

def get_context_data(self, **kwargs):
Expand Down