setup_wizard.views¶
Views for the users application.
Module Contents¶
- exception setup_wizard.views.TrustpointWizardError[source]¶
Bases:
ExceptionCustom exception for Trustpoint wizard-related issues.
- exception setup_wizard.views.TrustpointTlsServerCredentialError(message='Trustpoint TLS Server Credential error occurred.')[source]¶
Bases:
ExceptionCustom exception for errors related to Trustpoint TLS Server Credentials.
This exception is raised when specific issues with the TLS Server Credentials occur, such as missing credentials.
- Parameters:
message (str)
- setup_wizard.views.execute_shell_script(script, *args)[source]¶
Execute a shell script with optional arguments.
- Parameters:
script (Path) – The path to the shell script to execute.
*args (str) – Additional arguments to pass to the script.
- Raises:
FileNotFoundError – If the script does not exist.
ValueError – If the script path is not a valid file.
subprocess.CalledProcessError – If the script fails to execute.
- Return type:
None
- class setup_wizard.views.StartupWizardRedirect[source]¶
Handles redirection logic based on the current state of the setup wizard.
This class provides a static method for determining the appropriate redirection URL based on the wizard’s state, ensuring users are guided through the setup process.
- static redirect_by_state(wizard_state)[source]¶
Redirects the user to the appropriate setup wizard page based on the current state.
- Parameters:
wizard_state (SetupWizardState) – The current state of the setup wizard.
- Returns:
A redirection response to the appropriate page.
- Return type:
HttpResponseRedirect
- Raises:
ValueError – If the wizard state is unrecognized or invalid.
- class setup_wizard.views.HsmSetupMixin[source]¶
Bases:
trustpoint.logger.LoggerMixinMixin that provides common HSM setup functionality for both initial setup and auto restore.
- form_valid(form)[source]¶
Handle form submission for HSM setup.
- Parameters:
- Return type:
django.http.HttpResponse
- class setup_wizard.views.SetupWizardCryptoStorageView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[management.forms.KeyStorageConfigForm]View for handling crypto storage setup during the setup wizard.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- form_valid(form)[source]¶
Handle valid form submission and determine next step based on storage type.
- Parameters:
- Return type:
django.http.HttpResponse
- class setup_wizard.views.SetupWizardHsmSetupView[source]¶
Bases:
HsmSetupMixin,django.views.generic.FormView[setup_wizard.forms.HsmSetupForm]View for handling HSM setup during the setup wizard.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- get_form(form_class=None)[source]¶
Return a form instance with appropriate defaults based on HSM type.
- Parameters:
form_class (type[setup_wizard.forms.HsmSetupForm] | None)
- Return type:
- get_context_data(**kwargs)[source]¶
Add HSM type to template context.
- Parameters:
kwargs (Any)
- Return type:
dict[str, Any]
- class setup_wizard.views.SetupWizardSetupModeView(**kwargs)[source]¶
Bases:
django.views.generic.TemplateViewView for the initial step of the setup wizard.
This view is responsible for displaying the initial setup wizard page. It ensures that the application is running in a Docker container and that the setup wizard is in the initial state. If either condition is not met, the user is redirected to the appropriate page, such as the login page or the next setup step.
- get(*args, **kwargs)[source]¶
Handle GET requests for the setup mode wizard page.
This method validates the current state of the setup wizard and redirects the user to the appropriate page. If the application is not running in a Docker container, the user is redirected to the login page.
- Parameters:
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate setup wizard page
or the login page if the setup is not in a Docker container.
- Return type:
HttpResponse
- class setup_wizard.views.SetupWizardSelectTlsServerCredentialView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.EmptyForm]View for selecting the TLS server credential during setup.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- get(*args, **kwargs)[source]¶
Handle GET requests for the TLS server credential selection page.
- Parameters:
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponse
- class setup_wizard.views.SetupWizardRestoreOptionsView(**kwargs)[source]¶
Bases:
django.views.generic.TemplateViewView for the restore option during initialization.
- get(*args, **kwargs)[source]¶
Handle GET requests for the initial setup wizard page.
This method validates the current state of the setup wizard and redirects the user to the appropriate page. If the application is not running in a Docker container, the user is redirected to the login page.
- Parameters:
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate setup wizard page
or the login page if the setup is not in a Docker container.
- Return type:
HttpResponse
- class setup_wizard.views.SetupWizardBackupPasswordView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.BackupPasswordForm]View for setting up backup password for PKCS#11 token during the setup wizard.
This view allows users to set a backup password that can be used to recover the DEK (Data Encryption Key) in case the HSM becomes unavailable. The password is used to derive a BEK (Backup Encryption Key) using Argon2.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- get_context_data(**kwargs)[source]¶
Add password requirements to the context.
- Parameters:
kwargs (Any)
- Return type:
dict[str, Any]
- form_valid(form)[source]¶
Handle valid form submission.
- Parameters:
- Return type:
django.http.HttpResponse
- class setup_wizard.views.BackupPasswordRecoveryMixin[source]¶
Bases:
trustpoint.logger.LoggerMixinMixin that provides backup password recovery functionality.
- handle_backup_password_recovery(backup_password)[source]¶
Handle DEK recovery using backup password.
This method handles two scenarios: 1. Standard recovery: KEK exists, use it to wrap the recovered DEK 2. New KEK scenario: No KEK or KEK doesn’t match, generate new KEK first
- Parameters:
backup_password (str) – The backup password provided by user
- Returns:
True if recovery was successful, False otherwise
- Return type:
bool
- class setup_wizard.views.AutoRestoreHsmSetupView[source]¶
Bases:
HsmSetupMixin,django.views.generic.FormView[setup_wizard.forms.HsmSetupForm]View for handling HSM setup during auto restore process.
This view initializes the SoftHSM token when restoring to a new HSM installation where the old KEK is lost. It uses the wizard_setup_hsm.sh script with ‘auto_restore_setup’ mode.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- get_form(form_class=None)[source]¶
Return a form instance with appropriate defaults based on HSM type.
- Parameters:
form_class (type[setup_wizard.forms.HsmSetupForm] | None)
- Return type:
- get_context_data(**kwargs)[source]¶
Add HSM type to template context.
- Parameters:
kwargs (Any)
- Return type:
dict[str, Any]
- get_setup_type()[source]¶
Return the setup type for the HSM script (auto_restore_setup).
- Return type:
str
- class setup_wizard.views.BackupRestoreView(**kwargs)[source]¶
Bases:
BackupPasswordRecoveryMixin,trustpoint.logger.LoggerMixin,django.views.generic.ViewUpload a dump file and restore the database from it with optional backup password.
- class setup_wizard.views.BackupAutoRestorePasswordView[source]¶
Bases:
BackupPasswordRecoveryMixin,trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.PasswordAutoRestoreForm]View for handling backup password entry during auto restore process.
This view allows users to enter the backup password needed to recover the DEK (Data Encryption Key) during the auto restore process. It validates the current wizard state and processes the password recovery.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- get_context_data(**kwargs)[source]¶
Add additional context data.
- Parameters:
kwargs (Any)
- Return type:
dict[str, Any]
- form_valid(form)[source]¶
Handle valid form submission.
- Parameters:
- Return type:
django.http.HttpResponse
- class setup_wizard.views.SetupWizardGenerateTlsServerCredentialView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.StartupWizardTlsCertificateForm]View for generating TLS Server Credentials in the setup wizard.
This view handles the generation of TLS Server Credentials as part of the setup wizard. It provides a form for the user to input necessary information such as IP addresses and domain names, and processes the data to generate the required TLS certificates.
- dispatch(request, *args, **kwargs)[source]¶
Override the dispatch method to enforce wizard state validation.
This method ensures that the user is redirected appropriately based on the current wizard state. If the application is not running in a Docker container, the user is redirected to the login page.
- Parameters:
request (HttpRequest) – The incoming HTTP request.
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate page or
the next handler in the dispatch chain.
- Return type:
HttpResponse
- form_valid(form)[source]¶
Handle a valid form submission for TLS Server Credential generation.
- Parameters:
form (setup_wizard.forms.StartupWizardTlsCertificateForm) – The validated form containing user input for generating the TLS Server Credential.
- Returns:
- Redirect to the success URL upon successful
credential generation, or an error page if an exception occurs.
- Return type:
HttpResponseRedirect
- Raises:
TrustpointTlsServerCredentialError – If no TLS server credential is found.
subprocess.CalledProcessError – If the associated shell script fails.
- class setup_wizard.views.SetupWizardImportTlsServerCredentialMethodSelectView(**kwargs)[source]¶
Bases:
django.views.generic.TemplateViewView for selecting the import method for TLS Server Credentials.
- dispatch(request, *args, **kwargs)[source]¶
Override the dispatch method to enforce wizard state validation.
- Parameters:
request (HttpRequest) – The incoming HTTP request.
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate page or
the next handler in the dispatch chain.
- Return type:
HttpResponse
- class setup_wizard.views.SetupWizardImportTlsServerCredentialPkcs12View[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[management.forms.TlsAddFileImportPkcs12Form]View for importing TLS Server Credentials using a PKCS#12 file in the setup wizard.
- dispatch(request, *args, **kwargs)[source]¶
Override the dispatch method to enforce wizard state validation.
- Parameters:
request (HttpRequest) – The incoming HTTP request.
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate page or
the next handler in the dispatch chain.
- Return type:
HttpResponse
- form_valid(form)[source]¶
Handle a valid form submission for TLS Server Credential import.
- Parameters:
form (management.forms.TlsAddFileImportPkcs12Form) – The validated form containing the uploaded PKCS#12 file.
- Returns:
- Redirect to the success URL upon successful
credential import, or an error page if an exception occurs.
- Return type:
HttpResponseRedirect
- class setup_wizard.views.SetupWizardImportTlsServerCredentialSeparateFilesView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[management.forms.TlsAddFileImportSeparateFilesForm]View for importing TLS Server Credentials using separate files in the setup wizard.
- dispatch(request, *args, **kwargs)[source]¶
Override the dispatch method to enforce wizard state validation.
- Parameters:
request (HttpRequest) – The incoming HTTP request.
*args (Any) – Additional positional arguments.
**kwargs (Any) – Additional keyword arguments.
- Returns:
- A redirect response to the appropriate page or
the next handler in the dispatch chain.
- Return type:
HttpResponse
- form_valid(form)[source]¶
Handle a valid form submission for TLS Server Credential import.
- Parameters:
form (management.forms.TlsAddFileImportSeparateFilesForm) – The validated form containing the uploaded certificate files.
- Returns:
- Redirect to the success URL upon successful
credential import, or an error page if an exception occurs.
- Return type:
HttpResponseRedirect
- class setup_wizard.views.SetupWizardTlsServerCredentialApplyView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.EmptyForm]View for handling the application of TLS Server Credentials in the setup wizard.
- success_url¶
The URL to redirect to upon successful form submission.
- Type:
str
- get(request, *args, **kwargs)[source]¶
Handle GET requests for the TLS Server Credential application view.
- Parameters:
request (HttpRequest) – The HTTP request object.
*args (Any) – Positional arguments passed to the method.
**kwargs (Any) – Keyword arguments passed to the method.
- Returns:
A redirect response to the appropriate wizard state or the requested page.
- Return type:
HttpResponse
- post(*args, **kwargs)[source]¶
Handle POST requests for the TLS Server Credential application view.
- Parameters:
*args (Any) – Positional arguments passed to the method.
**kwargs (Any) – Keyword arguments passed to the method.
- Returns:
A redirect response to the appropriate page based on the wizard state.
- Return type:
HttpResponse
- form_valid(form)[source]¶
Process a valid form submission during the TLS Server Credential application.
- Parameters:
form (setup_wizard.forms.EmptyForm) – The form instance containing the submitted data.
- Returns:
Redirect to the next step or an error page based on the outcome.
- Return type:
HttpResponseRedirect
- class setup_wizard.views.SetupWizardTlsServerCredentialApplyCancelView(**kwargs)[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.ViewView for handling the cancellation of TLS Server Credential application.
- class setup_wizard.views.SetupWizardDemoDataView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[setup_wizard.forms.EmptyForm]View for handling the demo data setup during the setup wizard.
This view allows the user to either add demo data to the database or proceed without it. It validates the current wizard state and transitions to the next state upon successful completion.
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- form_valid(form)[source]¶
Handle form submission for demo data setup.
- Parameters:
form (setup_wizard.forms.EmptyForm)
- Return type:
django.http.HttpResponse
- class setup_wizard.views.SetupWizardCreateSuperUserView[source]¶
Bases:
trustpoint.logger.LoggerMixin,django.views.generic.FormView[django.contrib.auth.forms.UserCreationForm[django.contrib.auth.models.User]]View for handling the creation of a superuser during the setup wizard.
This view is part of the setup wizard process. It allows an admin to create a superuser account, ensuring that the application has at least one administrative user configured. The view validates the input using the UserCreationForm and transitions the wizard state upon successful completion.
- form_class: type[django.contrib.auth.forms.UserCreationForm[django.contrib.auth.models.User]][source]¶
- dispatch(request, *args, **kwargs)[source]¶
Handle request dispatch and wizard state validation.
- Parameters:
request (django.http.HttpRequest)
args (Any)
kwargs (Any)
- Return type:
django.http.HttpResponseBase
- form_valid(form)[source]¶
Handle form submission for creating a superuser.
- Parameters:
form (django.contrib.auth.forms.UserCreationForm[django.contrib.auth.models.User]) – The form containing the data for the superuser creation.
- Returns:
Redirect to the next step or login page.
- Return type:
HttpResponseRedirect