From 24e661afc7970192709764218dbdcb467fdeeaad Mon Sep 17 00:00:00 2001 From: Eugene Livis Date: Thu, 22 Oct 2015 14:45:25 -0400 Subject: [PATCH] Disable multi-user cases for non-Windows platforms --- .../autopsy/casemodule/Bundle.properties | 2 +- .../autopsy/core/UserPreferences.java | 5 ++++ .../autopsy/corecomponents/Bundle.properties | 1 + .../MultiUserSettingsPanel.form | 4 ++-- .../MultiUserSettingsPanel.java | 24 ++++++++++++++++--- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index c9a86ea72f..18e8d578a6 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -192,7 +192,7 @@ MissingImageDialog.ErrorSettingImage=Error setting image path. Please try again. NewCaseVisualPanel1.getName.text=Case Info NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select NewCaseVisualPanel1.badCredentials.text=Bad multi-user settings (see Tools, Options, Multi-user) or services are down. -NewCaseVisualPanel1.MultiUserDisabled.text=Multi-user cases not enabled. See Tools, Options, Multi-user. +NewCaseVisualPanel1.MultiUserDisabled.text=Multi-user cases are not enabled. See Tools, Options, Multi-user. NewCaseVisualPanel2.getName.text=Additional Information NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation? NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case diff --git a/Core/src/org/sleuthkit/autopsy/core/UserPreferences.java b/Core/src/org/sleuthkit/autopsy/core/UserPreferences.java index a9909593b0..03c97a0479 100755 --- a/Core/src/org/sleuthkit/autopsy/core/UserPreferences.java +++ b/Core/src/org/sleuthkit/autopsy/core/UserPreferences.java @@ -30,6 +30,7 @@ import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; import org.openide.util.NbBundle; import org.openide.util.NbPreferences; +import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.datamodel.CaseDbConnectionInfo; import org.sleuthkit.datamodel.TskData.DbType; @@ -39,6 +40,7 @@ import org.sleuthkit.datamodel.TskData.DbType; */ public final class UserPreferences { + private static final boolean isWindowsOS = PlatformUtil.isWindowsOS(); private static final Preferences preferences = NbPreferences.forModule(UserPreferences.class); public static final String KEEP_PREFERRED_VIEWER = "KeepPreferredViewer"; // NON-NLS public static final String HIDE_KNOWN_FILES_IN_DATA_SOURCES_TREE = "HideKnownFilesInDataSourcesTree"; //NON-NLS @@ -177,6 +179,9 @@ public final class UserPreferences { } public static boolean getIsMultiUserModeEnabled() { + if (!isWindowsOS) { + return false; + } return preferences.getBoolean(IS_MULTI_USER_MODE_ENABLED, false); } diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index 06146d2d8f..c1f259014e 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -153,6 +153,7 @@ MultiUserSettingsPanel.lbSolrSettings.text=Solr Settings MultiUserSettingsPanel.cbEnableMultiUser.text=Enable Multi-user cases MultiUserSettingsPanel.lbDatabaseSettings.text=Database Settings MultiUserSettingsPanel.validationErrMsg.incomplete=Fill in all values +MultiUserSettingsPanel.nonWindowsOs.msg=Multi-user cases are only available on Windows platforms MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort=Invalid database port number MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort=Invalid message service port number MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort=Invalid Solr server port number diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.form b/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.form index 57f1eca7d5..e15416659f 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.form @@ -16,12 +16,12 @@ - + - + diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.java index 0a26244edc..03c3bdf7c5 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/MultiUserSettingsPanel.java @@ -23,6 +23,7 @@ import javax.swing.ImageIcon; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.sleuthkit.autopsy.core.UserPreferencesException; +import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.events.MessageServiceException; import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService; import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchServiceException; @@ -39,7 +40,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { private static final String INVALID_DB_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidDatabasePort"); private static final String INVALID_MESSAGE_SERVICE_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidMessageServicePort"); private static final String INVALID_INDEXING_SERVER_PORT_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.validationErrMsg.invalidIndexingServerPort"); - private static final int DEFAULT_MESSAGE_SERVICE_PORT = 61616; + private static final String NON_WINDOWS_OS_MSG = NbBundle.getMessage(MultiUserSettingsPanel.class, "MultiUserSettingsPanel.nonWindowsOs.msg"); private static final long serialVersionUID = 1L; private final MultiUserSettingsPanelController controller; private final Collection textBoxes = new ArrayList<>(); @@ -47,6 +48,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { private static final Logger logger = Logger.getLogger(MultiUserSettingsPanel.class.getName()); private final ImageIcon goodIcon; private final ImageIcon badIcon; + private static final boolean isWindowsOS = PlatformUtil.isWindowsOS(); /** * Creates new form AutopsyMultiUserSettingsPanel @@ -105,6 +107,10 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { addDocumentListeners(textBoxes, textBoxChangedListener); goodIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/good.png", false)); badIcon = new ImageIcon(ImageUtilities.loadImage("org/sleuthkit/autopsy/images/bad.png", false)); + if (!isWindowsOS) { + cbEnableMultiUser.setEnabled(false); + cbEnableMultiUser.setSelected(false); + } enableMultiUserComponents(textBoxes, cbEnableMultiUser.isSelected()); } @@ -457,7 +463,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { private void cbEnableMultiUserItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbEnableMultiUserItemStateChanged if (!cbEnableMultiUser.isSelected()) { - tbOops.setText(""); + if (!isWindowsOS) { + tbOops.setText(NON_WINDOWS_OS_MSG); + } else { + tbOops.setText(""); + } bnTestDatabase.setEnabled(false); lbTestDatabase.setIcon(null); bnTestSolr.setEnabled(false); @@ -640,6 +650,10 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { } void store() { + if (!isWindowsOS) { + return; + } + DbType dbType = DbType.SQLITE; if (cbEnableMultiUser.isSelected()) { @@ -691,7 +705,11 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel { * @return true if it's okay, false otherwise. */ boolean valid() { - tbOops.setText(""); + if (!isWindowsOS) { + tbOops.setText(NON_WINDOWS_OS_MSG); + } else { + tbOops.setText(""); + } if (cbEnableMultiUser.isSelected()) { return checkFieldsAndEnableButtons()