mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 09:17:42 +00:00
query for account types
This commit is contained in:
parent
42d99e31d6
commit
e9cd0e49d1
@ -52,10 +52,12 @@ import org.apache.commons.csv.CSVFormat;
|
|||||||
import org.apache.commons.csv.CSVParser;
|
import org.apache.commons.csv.CSVParser;
|
||||||
import org.apache.commons.csv.CSVRecord;
|
import org.apache.commons.csv.CSVRecord;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.openide.nodes.AbstractNode;
|
||||||
import org.openide.nodes.ChildFactory;
|
import org.openide.nodes.ChildFactory;
|
||||||
import org.openide.nodes.Children;
|
import org.openide.nodes.Children;
|
||||||
import org.openide.nodes.Node;
|
import org.openide.nodes.Node;
|
||||||
import org.openide.nodes.Sheet;
|
import org.openide.nodes.Sheet;
|
||||||
|
import org.openide.util.Exceptions;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.lookup.Lookups;
|
import org.openide.util.lookup.Lookups;
|
||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
@ -521,15 +523,32 @@ public class Accounts extends Observable implements AutopsyVisitableItem {
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NbBundle.Messages({"Accounts.AccountTypeFactory.accountType.creditCards=Credit Card Numbers"})
|
|
||||||
protected boolean createKeys(List<String> list) {
|
protected boolean createKeys(List<String> list) {
|
||||||
list.add(Bundle.Accounts_AccountTypeFactory_accountType_creditCards());
|
|
||||||
|
try (SleuthkitCase.CaseDbQuery executeQuery = skCase.executeQuery(
|
||||||
|
"SELECT DISTINCT blackboard_attributes.value_text as account_type "
|
||||||
|
+ " FROM blackboard_attributes "
|
||||||
|
+ " WHERE blackboard_attributes.attribute_type_id = " + BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ACCOUNT_TYPE.getTypeID());
|
||||||
|
ResultSet resultSet = executeQuery.getResultSet()) {
|
||||||
|
while (resultSet.next()) {
|
||||||
|
list.add(resultSet.getString("account_type"));
|
||||||
|
}
|
||||||
|
} catch (TskCoreException | SQLException ex) {
|
||||||
|
Exceptions.printStackTrace(ex);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Node createNodeForKey(String key) {
|
protected Node createNodeForKey(String key) {
|
||||||
return new AccountTypeNode(key);
|
if (key.equals(CREDIT_CARD_NUMBER_ACCOUNT_TYPE)) {
|
||||||
|
return new CreditCardNumberAccountTypeNode(key);
|
||||||
|
} else {
|
||||||
|
//Flesh out what happens with other account types here.
|
||||||
|
return new AbstractNode(Children.LEAF);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -555,9 +574,9 @@ public class Accounts extends Observable implements AutopsyVisitableItem {
|
|||||||
*
|
*
|
||||||
* NOTE: currently hard coded to work for Credit Card only
|
* NOTE: currently hard coded to work for Credit Card only
|
||||||
*/
|
*/
|
||||||
public class AccountTypeNode extends DisplayableItemNode {
|
public class CreditCardNumberAccountTypeNode extends DisplayableItemNode {
|
||||||
|
|
||||||
private AccountTypeNode(String accountTypeName) {
|
private CreditCardNumberAccountTypeNode(String accountTypeName) {
|
||||||
super(Children.create(new ViewModeFactory(), true));
|
super(Children.create(new ViewModeFactory(), true));
|
||||||
super.setName(accountTypeName);
|
super.setName(accountTypeName);
|
||||||
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/credit-cards.png"); //NON-NLS
|
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/credit-cards.png"); //NON-NLS
|
||||||
@ -916,13 +935,13 @@ public class Accounts extends Observable implements AutopsyVisitableItem {
|
|||||||
public class BINNode extends DisplayableItemNode implements Observer {
|
public class BINNode extends DisplayableItemNode implements Observer {
|
||||||
|
|
||||||
private final BinResult bin;
|
private final BinResult bin;
|
||||||
private final AccountFactory accountFactory;
|
private final CreditCardNumberFactory accountFactory;
|
||||||
|
|
||||||
private BINNode(BinResult bin) {
|
private BINNode(BinResult bin) {
|
||||||
super(Children.LEAF);
|
super(Children.LEAF);
|
||||||
this.bin = bin;
|
this.bin = bin;
|
||||||
|
|
||||||
accountFactory = new AccountFactory(bin);
|
accountFactory = new CreditCardNumberFactory(bin);
|
||||||
setChildren(Children.create(accountFactory, true));
|
setChildren(Children.create(accountFactory, true));
|
||||||
setName(bin.toString());
|
setName(bin.toString());
|
||||||
updateDisplayName();
|
updateDisplayName();
|
||||||
@ -1170,11 +1189,11 @@ public class Accounts extends Observable implements AutopsyVisitableItem {
|
|||||||
/**
|
/**
|
||||||
* Creates the nodes for the accounts of a given type
|
* Creates the nodes for the accounts of a given type
|
||||||
*/
|
*/
|
||||||
private class AccountFactory extends ObservingChildFactory<Long> {
|
private class CreditCardNumberFactory extends ObservingChildFactory<Long> {
|
||||||
|
|
||||||
private final BinResult bin;
|
private final BinResult bin;
|
||||||
|
|
||||||
private AccountFactory(BinResult bin) {
|
private CreditCardNumberFactory(BinResult bin) {
|
||||||
this.bin = bin;
|
this.bin = bin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ public interface DisplayableItemNodeVisitor<T> {
|
|||||||
*/
|
*/
|
||||||
T visit(Accounts.AccountsRootNode accountRootNode);
|
T visit(Accounts.AccountsRootNode accountRootNode);
|
||||||
|
|
||||||
T visit(Accounts.AccountTypeNode accountTypeNode);
|
T visit(Accounts.CreditCardNumberAccountTypeNode accountTypeNode);
|
||||||
|
|
||||||
T visit(Accounts.ByBINNode byArtifactNode);
|
T visit(Accounts.ByBINNode byArtifactNode);
|
||||||
|
|
||||||
@ -350,7 +350,7 @@ public interface DisplayableItemNodeVisitor<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T visit(Accounts.AccountTypeNode node) {
|
public T visit(Accounts.CreditCardNumberAccountTypeNode node) {
|
||||||
return defaultVisit(node);
|
return defaultVisit(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AbstractAction visit(Accounts.AccountTypeNode node) {
|
public AbstractAction visit(Accounts.CreditCardNumberAccountTypeNode node) {
|
||||||
return openChild(node);
|
return openChild(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user