Data source deletion support changes

This commit is contained in:
Richard Cordovano 2019-11-06 17:38:09 -05:00
parent 5a8e401723
commit a52786d3fc
4 changed files with 17 additions and 16 deletions

View File

@ -18,7 +18,7 @@
*/
package org.sleuthkit.autopsy.casemodule;
import org.sleuthkit.autopsy.featureaccess.AccessLimiterUtils;
import org.sleuthkit.autopsy.featureaccess.UserFeatureAccessUtils;
import com.google.common.annotations.Beta;
import com.google.common.eventbus.Subscribe;
import org.sleuthkit.autopsy.casemodule.multiusercases.CaseNodeData;
@ -1089,7 +1089,7 @@ public class Case {
/*
* Enable the case-specific actions.
*/
CallableSystemAction.get(AddImageAction.class).setEnabled(Case.getCurrentCase().getMetadata().getCaseType() == CaseType.SINGLE_USER_CASE || !AccessLimiterUtils.limitMultiUserAccess());
CallableSystemAction.get(AddImageAction.class).setEnabled(Case.getCurrentCase().getMetadata().getCaseType() == CaseType.SINGLE_USER_CASE || UserFeatureAccessUtils.canCreateOrModifyMultiUserCases());
CallableSystemAction.get(CaseCloseAction.class).setEnabled(true);
CallableSystemAction.get(CaseDetailsAction.class).setEnabled(true);
CallableSystemAction.get(DataSourceSummaryAction.class).setEnabled(true);

View File

@ -18,7 +18,7 @@
*/
package org.sleuthkit.autopsy.casemodule;
import org.sleuthkit.autopsy.featureaccess.AccessLimiterUtils;
import org.sleuthkit.autopsy.featureaccess.UserFeatureAccessUtils;
import java.awt.Component;
import org.openide.util.NbBundle;
@ -62,7 +62,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
*/
void readSettings() {
caseNameTextField.setText("");
if (UserPreferences.getIsMultiUserModeEnabled() && !AccessLimiterUtils.limitMultiUserAccess()) {
if (UserPreferences.getIsMultiUserModeEnabled() && UserFeatureAccessUtils.canCreateOrModifyMultiUserCases()) {
multiUserCaseRadioButton.setEnabled(true);
multiUserCaseRadioButton.setSelected(true);
} else {

View File

@ -33,7 +33,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.openide.nodes.Sheet;
import org.openide.util.NbBundle;
import org.openide.util.NbBundle.Messages;
import org.sleuthkit.autopsy.featureaccess.AccessLimiterUtils;
import org.sleuthkit.autopsy.featureaccess.UserFeatureAccessUtils;
import org.sleuthkit.autopsy.casemodule.DeleteDataSourceAction;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
@ -220,8 +220,8 @@ public class ImageNode extends AbstractContentNode<Image> {
private Boolean canAddDeleteDataSourceAction() {
boolean canAddAction = false;
CaseDbSchemaVersionNumber creationVersion = Case.getCurrentCase().getSleuthkitCase().getDBSchemaCreationVersion();
if ((creationVersion.getMajor() == 8 && creationVersion.getMinor() >= 3) || (creationVersion.getMajor() > 8)) {
canAddAction = Case.getCurrentCase().getCaseType() == Case.CaseType.SINGLE_USER_CASE || !AccessLimiterUtils.limitMultiUserAccess();
if ((creationVersion.getMajor() == 8 && creationVersion.getMinor() >= 4) || (creationVersion.getMajor() > 8)) {
canAddAction = Case.getCurrentCase().getCaseType() == Case.CaseType.SINGLE_USER_CASE || UserFeatureAccessUtils.canCreateOrModifyMultiUserCases();
}
return canAddAction;
}

View File

@ -23,27 +23,28 @@ import java.nio.file.Paths;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
/**
* Class for methods to check if access should be limited to a feature
*
* Check if access to various features is permitted for the current user.
*/
final public class AccessLimiterUtils {
final public class UserFeatureAccessUtils {
private final static String MULTI_USER_ACCESS_FILE_NAME = "mualimit"; // NON-NLS
private final static String MULTI_USER_ACCESS_FILE_PATH = Paths.get(PlatformUtil.getUserConfigDirectory(), MULTI_USER_ACCESS_FILE_NAME).toString();
/**
* Check if privileges regarding multi-user cases should be restricted.
* Indicates whether or not the current user is allowed to create or modify
* (add or delete data sourcess) multi-user cases.
*
* @return True if privileges should be restricted, false otherwise.
*/
public static boolean limitMultiUserAccess() {
return new File(MULTI_USER_ACCESS_FILE_PATH).exists();
public static boolean canCreateOrModifyMultiUserCases() {
File accessLimitingFile = new File(MULTI_USER_ACCESS_FILE_PATH);
return !accessLimitingFile.exists();
}
/**
* Private constructor for a utility class
* Private constructor to prevent instatiation of this utility class.
*/
private AccessLimiterUtils() {
//private constructer left empty intentionally
private UserFeatureAccessUtils() {
}
}