From 099e3dda47989aa6c13c456ffc6a0f1d2a30b6e0 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 22 Mar 2017 18:01:34 -0400 Subject: [PATCH 1/4] 2463 disable instead of hide local disk DSP when multi-user --- .../AddImageWizardSelectDspVisual.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java index dea544c416..7096ae9642 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java @@ -37,6 +37,7 @@ import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JToggleButton; import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor; import org.sleuthkit.autopsy.datasourceprocessors.RawDSProcessor; import org.sleuthkit.autopsy.coreutils.Logger; @@ -49,6 +50,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { private static final Logger logger = Logger.getLogger(AddImageWizardSelectDspVisual.class.getName()); private String selectedDsp; + private int indexOfLocalDiskDSP = -1; /** * Creates new form SelectDataSourceProcessorPanel @@ -87,6 +89,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { return selectedDsp; } + @NbBundle.Messages("AddImageWizardSelectDspVisual.multiUserWarning.text=This type of Data Source Processor is not available in multi-user mode") /** * Create the a button for each DataSourceProcessor that should exist as an * option. @@ -108,8 +111,10 @@ final class AddImageWizardSelectDspVisual extends JPanel { constraints.gridy = 0; constraints.weighty = 0; constraints.anchor = GridBagConstraints.LINE_START; + boolean isMultiUserCase = Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE; Dimension spacerBlockDimension = new Dimension(6, 4); // Space between left edge and button, Space between rows for (String dspType : dspList) { + boolean shouldAddMultiUserWarning = false; constraints.weightx = 1; //Add a spacer Filler spacer = new Filler(spacerBlockDimension, spacerBlockDimension, spacerBlockDimension); @@ -120,6 +125,11 @@ final class AddImageWizardSelectDspVisual extends JPanel { //Add the button JToggleButton dspButton = createDspButton(dspType); dspButton.addActionListener(cbActionListener); + if (isMultiUserCase && dspList.indexOf(dspType) == indexOfLocalDiskDSP) { + dspButton.setEnabled(false); //disable the button for local disk DSP when this is a multi user case + dspButton.setSelected(false); + shouldAddMultiUserWarning = true; + } jPanel1.add(dspButton); buttonGroup1.add(dspButton); gridBagLayout.setConstraints(dspButton, constraints); @@ -130,7 +140,15 @@ final class AddImageWizardSelectDspVisual extends JPanel { jPanel1.add(buttonTextSpacer); constraints.gridx++; //Add the text area serving as a label to the right of the button - JTextArea myLabel = new JTextArea(dspType); + + JTextArea myLabel = new JTextArea(); + if (shouldAddMultiUserWarning) { + myLabel.setText(dspType + " - " + NbBundle.getMessage(this.getClass(), "AddImageWizardSelectDspVisual.multiUserWarning.text")); + myLabel.setEnabled(false); //gray out the text + } + else { + myLabel.setText(dspType); + } myLabel.setBackground(new Color(240, 240, 240));//matches background of panel myLabel.setEditable(false); myLabel.setWrapStyleWord(true); @@ -169,12 +187,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { } } dspList.add(ImageDSProcessor.getType()); - if (Case.getCurrentCase().getCaseType() != Case.CaseType.MULTI_USER_CASE) { - dspList.add(LocalDiskDSProcessor.getType()); - } else { - // remove LocalDiskDSProcessor from list of DSPs - datasourceProcessorsMap.remove(LocalDiskDSProcessor.getType()); - } + dspList.add(LocalDiskDSProcessor.getType()); dspList.add(LocalFilesDSProcessor.getType()); dspList.add(RawDSProcessor.getType()); // now add any addtional DSPs that haven't already been added @@ -183,6 +196,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { dspList.add(dspType); } } + indexOfLocalDiskDSP = dspList.indexOf(LocalDiskDSProcessor.getType()); return dspList; } From 40ab73615b4e4935bee2596856f008c78f0fcb89 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 22 Mar 2017 18:04:09 -0400 Subject: [PATCH 2/4] 2452 - Updated text for switching to VHD upon completion of image writer --- Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index 7390868798..05c2693128 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -241,4 +241,4 @@ CasePropertiesPanel.lbDbType.text=Case Type: CasePropertiesPanel.examinerLabel.text=Examiner: CasePropertiesPanel.caseNumberLabel.text=Case Number: CasePropertiesPanel.deleteCaseButton.text=Delete Case -LocalDiskPanel.changeDatabasePathCheckbox.text=Change image path in the case to the VHD upon completion +LocalDiskPanel.changeDatabasePathCheckbox.text=Update case to use VHD file upon completion From eef0042f5ad9bc5946597daf5283bad0c19ee555 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 22 Mar 2017 18:16:12 -0400 Subject: [PATCH 3/4] 2463 - Change default selection when selected DSP would be disabled --- .../casemodule/AddImageWizardSelectDspVisual.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java index 7096ae9642..f7d83edf3b 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java @@ -51,6 +51,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { private static final Logger logger = Logger.getLogger(AddImageWizardSelectDspVisual.class.getName()); private String selectedDsp; private int indexOfLocalDiskDSP = -1; + boolean isMultiUserCase; /** * Creates new form SelectDataSourceProcessorPanel @@ -58,8 +59,12 @@ final class AddImageWizardSelectDspVisual extends JPanel { AddImageWizardSelectDspVisual(String lastDspUsed) { initComponents(); selectedDsp = lastDspUsed; + isMultiUserCase = Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE; + //if the last selected DSP was the Local Disk DSP and it would be disabled then we want to select a different DSP + if (isMultiUserCase && selectedDsp.equals(LocalDiskDSProcessor.getType())) { + selectedDsp = ImageDSProcessor.getType(); + } createDataSourceProcessorButtons(); - //add actionlistner to listen for change } @@ -111,7 +116,6 @@ final class AddImageWizardSelectDspVisual extends JPanel { constraints.gridy = 0; constraints.weighty = 0; constraints.anchor = GridBagConstraints.LINE_START; - boolean isMultiUserCase = Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE; Dimension spacerBlockDimension = new Dimension(6, 4); // Space between left edge and button, Space between rows for (String dspType : dspList) { boolean shouldAddMultiUserWarning = false; @@ -140,13 +144,12 @@ final class AddImageWizardSelectDspVisual extends JPanel { jPanel1.add(buttonTextSpacer); constraints.gridx++; //Add the text area serving as a label to the right of the button - - JTextArea myLabel = new JTextArea(); + + JTextArea myLabel = new JTextArea(); if (shouldAddMultiUserWarning) { myLabel.setText(dspType + " - " + NbBundle.getMessage(this.getClass(), "AddImageWizardSelectDspVisual.multiUserWarning.text")); myLabel.setEnabled(false); //gray out the text - } - else { + } else { myLabel.setText(dspType); } myLabel.setBackground(new Color(240, 240, 240));//matches background of panel From da3dceaa9742128b187d17af4cb9d1205d57f8f4 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 22 Mar 2017 19:04:58 -0400 Subject: [PATCH 4/4] 2463-Simplified logic for disabling Local Disk DSP when Multi-User --- .../autopsy/casemodule/AddImageWizardSelectDspVisual.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java index f7d83edf3b..9c66184b47 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java @@ -50,8 +50,6 @@ final class AddImageWizardSelectDspVisual extends JPanel { private static final Logger logger = Logger.getLogger(AddImageWizardSelectDspVisual.class.getName()); private String selectedDsp; - private int indexOfLocalDiskDSP = -1; - boolean isMultiUserCase; /** * Creates new form SelectDataSourceProcessorPanel @@ -59,9 +57,8 @@ final class AddImageWizardSelectDspVisual extends JPanel { AddImageWizardSelectDspVisual(String lastDspUsed) { initComponents(); selectedDsp = lastDspUsed; - isMultiUserCase = Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE; //if the last selected DSP was the Local Disk DSP and it would be disabled then we want to select a different DSP - if (isMultiUserCase && selectedDsp.equals(LocalDiskDSProcessor.getType())) { + if ((Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE) && selectedDsp.equals(LocalDiskDSProcessor.getType())) { selectedDsp = ImageDSProcessor.getType(); } createDataSourceProcessorButtons(); @@ -129,7 +126,7 @@ final class AddImageWizardSelectDspVisual extends JPanel { //Add the button JToggleButton dspButton = createDspButton(dspType); dspButton.addActionListener(cbActionListener); - if (isMultiUserCase && dspList.indexOf(dspType) == indexOfLocalDiskDSP) { + if ((Case.getCurrentCase().getCaseType() == Case.CaseType.MULTI_USER_CASE) && dspType.equals(LocalDiskDSProcessor.getType())){ dspButton.setEnabled(false); //disable the button for local disk DSP when this is a multi user case dspButton.setSelected(false); shouldAddMultiUserWarning = true; @@ -199,7 +196,6 @@ final class AddImageWizardSelectDspVisual extends JPanel { dspList.add(dspType); } } - indexOfLocalDiskDSP = dspList.indexOf(LocalDiskDSProcessor.getType()); return dspList; }