def assign_owner_hosts(request, selected_hosts, add_only=False): user = request.user # User must have global change perm or object owner perm. if not user.has_perm("hosts.change_host") and not change_perms_check( user, selected_hosts ): messages.error( request, "You do not have permissions to perform this action on one or more the selected hosts. " "Please contact an IPAM administrator.", ) else: owner_form = HostOwnerForm(request.POST) if owner_form.is_valid(): user_owners = owner_form.cleaned_data["user_owners"] group_owners = owner_form.cleaned_data["group_owners"] for host in selected_hosts: # Delete user and group permissions first if not add_only: host.remove_owners() # Re-assign users for user_onwer in user_owners: host.assign_owner(user_onwer) # Re-assign groups for group_owner in group_owners: host.assign_owner(group_owner) data = [user_owners, group_owners] LogEntry.objects.log_action( user_id=request.user.pk, content_type_id=ContentType.objects.get_for_model(host).pk, object_id=host.pk, object_repr=force_unicode(host), action_flag=CHANGE, change_message="Owners assigned to host: \n\n %s" % data, ) messages.success(request, "Ownership for selected hosts has been updated.") else: error_list = [] for key, errors in owner_form.errors.items(): for error in errors: error_list.append(error) messages.error( request, mark_safe( "There was an error updating the ownership of the selected hosts. " "<br/>%s" % "<br />".join(error_list) ), )
def assign_owner_hosts(request, selected_hosts, add_only=False): user = request.user # User must have global change perm or object owner perm. if not user.has_perm("hosts.change_host") and not change_perms_check( user, selected_hosts ): messages.error( request, "You do not have permissions to perform this action on one or more the selected hosts. " "Please contact an IPAM administrator.", ) else: owner_form = HostOwnerForm(request.POST) if owner_form.is_valid(): user_owners = owner_form.cleaned_data["user_owners"] group_owners = owner_form.cleaned_data["group_owners"] for host in selected_hosts: # Delete user and group permissions first if not add_only: host.remove_owners() # Re-assign users for user_onwer in user_owners: host.assign_owner(user_onwer) # Re-assign groups for group_owner in group_owners: host.assign_owner(group_owner) data = [user_owners, group_owners] LogEntry.objects.log_action( user_id=request.user.pk, content_type_id=ContentType.objects.get_for_model(host).pk, object_id=host.pk, object_repr=force_text(host), action_flag=CHANGE, change_message="Owners assigned to host: \n\n %s" % data, ) messages.success(request, "Ownership for selected hosts has been updated.") else: error_list = [] for key, errors in list(owner_form.errors.items()): for error in errors: error_list.append(error) messages.error( request, mark_safe( "There was an error updating the ownership of the selected hosts. " "<br/>%s" % "<br />".join(error_list) ), )
def change_owners(request): form = HostOwnerForm(request.POST or None) if form.is_valid: pass context = {"form": form} return render(request, "hosts/change_owners.html", context)
def get_context_data(self, **kwargs): context = super(HostListView, self).get_context_data(**kwargs) owner_filter = self.request.COOKIES.get("owner_filter", None) context["owner_filter"] = self.request.GET.get("mine", owner_filter) search_filter = self.request.COOKIES.get("search_filter") search_filter = urlunquote(search_filter).split( ",") if search_filter else [] context["search_filter"] = search_filter context["owners_form"] = HostOwnerForm() context["renew_form"] = HostRenewForm(user=self.request.user) context["rename_form"] = HostRenameForm() context["attribute_add_from"] = HostAttributesCreateForm() context["dhcp_group_form"] = HostDhcpGroupForm() context["attribute_delete_from"] = HostAttributesDeleteForm() return context