From 6b53e25446445d92a1ecebdc45653634444fc97f Mon Sep 17 00:00:00 2001 From: Kelly Kelly Date: Wed, 10 Mar 2021 16:49:23 -0500 Subject: [PATCH] Added OsAccount context menu items --- .../datamodel/DataModelActionsFactory.java | 18 +++++++++++++++++- .../autopsy/datamodel/OsAccounts.java | 14 ++++++++++++-- .../ingest/GetRootDirectoryVisitor.java | 6 ++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java index bdb4a394a8..71b99cd282 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataModelActionsFactory.java @@ -35,6 +35,7 @@ import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction; import org.sleuthkit.autopsy.actions.ReplaceBlackboardArtifactTagAction; import org.sleuthkit.autopsy.actions.ReplaceContentTagAction; import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint; +import org.sleuthkit.autopsy.datamodel.OsAccounts.OsAccountNode; import org.sleuthkit.autopsy.datamodel.Reports.ReportNode; import org.sleuthkit.autopsy.directorytree.ExportCSVAction; import org.sleuthkit.autopsy.directorytree.ExternalViewerAction; @@ -53,6 +54,7 @@ import org.sleuthkit.datamodel.File; import org.sleuthkit.datamodel.LayoutFile; import org.sleuthkit.datamodel.LocalFile; import org.sleuthkit.datamodel.LocalDirectory; +import org.sleuthkit.datamodel.OsAccount; import org.sleuthkit.datamodel.Report; import org.sleuthkit.datamodel.SlackFile; import org.sleuthkit.datamodel.VirtualDirectory; @@ -446,6 +448,18 @@ public class DataModelActionsFactory { actionsList.addAll(ContextMenuExtensionPoint.getActions()); return actionsList; } + + public static List getActions(OsAccount osAccount) { + List actionsList = new ArrayList<>(); + + OsAccountNode node = new OsAccountNode(osAccount); + actionsList.add(null); // creates a menu separator + actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, node)); + actionsList.add(null); + actionsList.add(ExportCSVAction.getInstance()); + actionsList.addAll(ContextMenuExtensionPoint.getActions()); + return actionsList; + } public static List getActions(Content content, boolean isArtifactSource) { if (content instanceof File) { @@ -464,7 +478,9 @@ public class DataModelActionsFactory { return getActions((SlackFile) content, isArtifactSource); } else if (content instanceof Report) { return getActions((Report) content, isArtifactSource); - } else { + } else if (content instanceof OsAccount) { + return getActions((OsAccount) content, isArtifactSource); + }else { return new ArrayList<>(); } } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/OsAccounts.java b/Core/src/org/sleuthkit/autopsy/datamodel/OsAccounts.java index ade1ef6329..8fd5bfb84d 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/OsAccounts.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/OsAccounts.java @@ -21,12 +21,13 @@ package org.sleuthkit.autopsy.datamodel; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; -import java.util.EnumSet; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.logging.Level; +import javax.swing.Action; import org.openide.nodes.ChildFactory; import org.openide.nodes.Children; import org.openide.nodes.Node; @@ -260,5 +261,14 @@ public final class OsAccounts implements AutopsyVisitableItem { return sheet; } + + @Override + public Action[] getActions(boolean popup) { + List actionsList = new ArrayList<>(); + actionsList.addAll(Arrays.asList(super.getActions(popup))); + actionsList.addAll(DataModelActionsFactory.getActions(account)); + + return actionsList.toArray(new Action[actionsList.size()]); + } } } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/GetRootDirectoryVisitor.java b/Core/src/org/sleuthkit/autopsy/ingest/GetRootDirectoryVisitor.java index 8523fa699f..cf02c8e11b 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/GetRootDirectoryVisitor.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/GetRootDirectoryVisitor.java @@ -29,6 +29,7 @@ import org.sleuthkit.datamodel.FileSystem; import org.sleuthkit.datamodel.LayoutFile; import org.sleuthkit.datamodel.LocalFile; import org.sleuthkit.datamodel.LocalDirectory; +import org.sleuthkit.datamodel.OsAccount; import org.sleuthkit.datamodel.SlackFile; import org.sleuthkit.datamodel.VirtualDirectory; @@ -107,4 +108,9 @@ final class GetRootDirectoryVisitor extends GetFilesContentVisitor { public Collection visit(BlackboardArtifact art) { return getAllFromChildren(art); } + + @Override + public Collection visit(OsAccount art) { + return getAllFromChildren(art); + } }