[docs]classOwnerCredentialDetailView(LoggerMixin,OwnerCredentialContextMixin,DetailView[OwnerCredentialModel]):"""View to display the details of an Issuing CA."""
[docs]defget_context_data(self,**kwargs:Any)->dict[str,Any]:"""Adds the issued certificates to the context. Args: **kwargs: Keyword arguments passed to super().get_context_data() Returns: The context to render the page. """context=super().get_context_data(**kwargs)owner_credential=self.get_object()idevid_refs:list[dict[str,str]]=[]ifowner_credential:forrefinowner_credential.idevid_ref_set.all():idevid_refs.append({'idevid_subj_sn':ref.idevid_subject_serial_number,'idevid_x509_sn':ref.idevid_x509_serial_number,'idevid_sha256_fingerprint':ref.idevid_sha256_fingerprint,})context['idevid_refs']=idevid_refsreturncontext
[docs]classOwnerCredentialAddView(OwnerCredentialContextMixin,FormView[OwnerCredentialFileImportForm]):"""View to import a DevOwnerID from separate PEM files."""
[docs]defform_valid(self,form:OwnerCredentialFileImportForm)->HttpResponse:"""Handle the case where the form is valid."""messages.success(self.request,_('Successfully added DevOwnerID {name}.').format(name=form.cleaned_data['unique_name']),)returnsuper().form_valid(form)
[docs]classOwnerCredentialBulkDeleteConfirmView(OwnerCredentialContextMixin,BulkDeleteView):"""View to confirm the deletion of multiple owner credentials."""
[docs]defform_valid(self,form:Form)->HttpResponse:"""Delete the selected credentials on valid form."""queryset=self.get_queryset()deleted_count=queryset.count()ifquerysetelse0try:response=super().form_valid(form)exceptProtectedError:messages.error(self.request,_('Cannot delete the selected DevOwnerID(s) because they are referenced by other objects.'),)returnHttpResponseRedirect(self.success_url)exceptValidationErrorasexc:messages.error(self.request,exc.message)returnHttpResponseRedirect(self.success_url)messages.success(self.request,_('Successfully deleted {count} DevOwnerID(s).').format(count=deleted_count))returnresponse