[docs]defform_valid(self,form:SecurityConfigForm):old_conf=SecurityConfig.objects.get(pk=form.instance.pk)ifform.instance.pkelseNoneform.save()if'security_mode'inform.changed_data:old_value=getattr(old_conf,'security_mode',None)ifold_confelseNonenew_value=form.cleaned_data.get('security_mode',None)# Safely convert to int for comparison (default to 0 if None)old_int=int(old_value)ifold_valueelse0new_int=int(new_value)ifnew_int>old_int:self.sec.reset_settings(new_value)form.instance.apply_security_settings()if'auto_gen_pki'inform.changed_data:old_auto=getattr(old_conf,'auto_gen_pki',None)ifold_confelseNonenew_auto=form.cleaned_data.get('auto_gen_pki',None)ifold_auto!=new_autoandnew_auto:# autogen PKI got enabledkey_alg=AutoGenPkiKeyAlgorithm(form.cleaned_data.get('auto_gen_pki_key_algorithm'))self.sec.enable_feature(AutoGenPkiFeature,key_alg)elifold_auto!=new_autoandnotnew_auto:# autogen PKI got disabledAutoGenPkiFeature.disable()messages.success(self.request,_('Your changes were saved successfully.'))returnsuper().form_valid(form)
[docs]defform_invalid(self,form:SecurityConfigForm):messages.error(self.request,_('Error saving the configuration'))returnself.render_to_response(self.get_context_data(form=form))
[docs]defpost(self,request):level=request.POST.get('loglevel','').upper()iflevelnotinLOG_LEVELS:messages.error(request,f"Invalid log level: {level}")else:logger=logging.getLogger()logger.setLevel(getattr(logging,level))LoggingConfig.objects.update_or_create(id=1,defaults={'log_level':level})messages.success(request,f"Log level set to {level}")returnredirect(reverse('management:settings'))