1
0
mirror of https://github.com/elisspace/autopsy.git synced 2026-08-31 16:33:52 +00:00

Merge pull request #6644 from kellykelly3/7232-disable-multi-use-open-case

7232 - Modified multi user options panel to...
This commit is contained in:
Richard Cordovano
2021-01-20 09:36:17 -05:00
committed by GitHub
3 changed files with 39 additions and 14 deletions

View File

@@ -52,6 +52,7 @@ DataResultViewerThumbnail.sortLabel.textTemplate=Sorted by: {0}
DataResultViewerThumbnail.thumbnailSizeComboBox.large=Large Thumbnails
DataResultViewerThumbnail.thumbnailSizeComboBox.medium=Medium Thumbnails
DataResultViewerThumbnail.thumbnailSizeComboBox.small=Small Thumbnails
MultiUserSettingsPanel_Close_Case_To_Modify=Close case to modfy settings
OptionsCategory_Name_General=Application
OptionsCategory_Keywords_General=Autopsy Options
HINT_DataContentTopComponent=This is a DataContent window

View File

@@ -32,13 +32,17 @@ import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.autopsy.events.MessageServiceConnectionInfo;
import org.sleuthkit.autopsy.coreutils.Logger;
import java.awt.Cursor;
import java.beans.PropertyChangeEvent;
import java.io.IOException;
import java.util.EnumSet;
import java.util.logging.Level;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.NbBundle.Messages;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.coordinationservice.utils.CoordinationServiceUtils;
import org.sleuthkit.autopsy.core.UserPreferencesException;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
@@ -159,6 +163,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
goodIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/good.png", false));
badIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/bad.png", false));
enableMultiUserComponents(textBoxes, cbEnableMultiUser.isSelected());
Case.addEventTypeSubscriber(EnumSet.of(Case.Events.CURRENT_CASE), (PropertyChangeEvent evt) -> {
//disable when case is open, enable when case is closed
load(evt.getNewValue() != null);
});
}
/**
@@ -806,7 +815,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
}
}//GEN-LAST:event_bnTestZKActionPerformed
void load() {
@Messages({
"MultiUserSettingsPanel_Close_Case_To_Modify=Close case to modfy settings"
})
void load(boolean caseOpen) {
lbTestDatabase.setIcon(null);
lbTestSolr8.setIcon(null);
lbTestSolr4.setIcon(null);
@@ -845,7 +858,13 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
bnTestMessageService.setEnabled(false);
cbEnableMultiUser.setSelected(UserPreferences.getIsMultiUserModeEnabled());
this.valid(); // trigger validation to enable buttons based on current settings
// When a case is open, prevent the user from changing
// multi-user settings.
cbEnableMultiUser.setEnabled(!caseOpen);
enableMultiUserComponents(textBoxes, cbEnableMultiUser.isSelected() && !caseOpen);
this.valid(caseOpen); // trigger validation to enable buttons based on current settings
}
private void populateSolrAndZkSettings() {
@@ -1096,11 +1115,15 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
*
* @return true if it's okay, false otherwise.
*/
boolean valid() {
tbOops.setText("");
boolean valid(boolean caseOpen) {
if(caseOpen) {
tbOops.setText(Bundle.MultiUserSettingsPanel_Close_Case_To_Modify());
} else {
tbOops.setText("");
}
if (cbEnableMultiUser.isSelected()) {
return checkFieldsAndEnableButtons()
return checkFieldsAndEnableButtons(caseOpen)
&& databaseSettingsAreValid()
&& indexingServerSettingsAreValid()
&& messageServiceSettingsAreValid();
@@ -1115,7 +1138,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
*
* @return True or false.
*/
boolean checkFieldsAndEnableButtons() {
boolean checkFieldsAndEnableButtons(boolean caseOpen) {
boolean result = true;
boolean dbPopulated = databaseFieldsArePopulated();
@@ -1125,15 +1148,15 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
boolean messageServicePopulated = messageServiceFieldsArePopulated();
// PostgreSQL Database
bnTestDatabase.setEnabled(dbPopulated);
bnTestDatabase.setEnabled(dbPopulated && !caseOpen);
// Solr Indexing
bnTestSolr8.setEnabled(solr8Populated);
bnTestSolr4.setEnabled(solr4Populated);
bnTestZK.setEnabled(zkPopulated);
bnTestSolr8.setEnabled(solr8Populated && !caseOpen);
bnTestSolr4.setEnabled(solr4Populated && !caseOpen);
bnTestZK.setEnabled(zkPopulated && !caseOpen);
// ActiveMQ Messaging
bnTestMessageService.setEnabled(messageServicePopulated);
bnTestMessageService.setEnabled(messageServicePopulated && !caseOpen);
if (dbPopulated && messageServicePopulated && zkPopulated && (solr8Populated || solr4Populated)) {
result = true;

View File

@@ -27,6 +27,7 @@ import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
import java.util.logging.Level;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.coreutils.Logger;
@OptionsPanelController.TopLevelRegistration(categoryName = "#OptionsCategory_Name_Multi_User_Settings",
@@ -43,7 +44,7 @@ public final class MultiUserSettingsPanelController extends OptionsPanelControll
@Override
public void update() {
getPanel().load();
getPanel().load(Case.isCaseOpen());
changed = false;
}
@@ -59,7 +60,7 @@ public final class MultiUserSettingsPanelController extends OptionsPanelControll
@Override
public boolean isValid() {
return getPanel().valid();
return getPanel().valid(Case.isCaseOpen());
}
@Override