#ifndef AXSCRIPTMANAGER_H #define AXSCRIPTMANAGER_H #include #include #include #include #include struct ExtensionFile; struct AxMenuItem; struct AxEvent; class AxScriptEngine; class AdaptixWidget; class Agent; struct DataMenuFileBrowser { QString agentId; QString path; QString name; QString type; }; struct DataMenuProcessBrowser { QString agentId; QString pid; QString ppid; QString arch; QString session_id; QString context; QString process; }; struct DataMenuDownload { QString agentId; QString fileId; QString path; QString state; }; class AxScriptManager : public QObject { Q_OBJECT AdaptixWidget* adaptixWidget = nullptr; AxScriptEngine* mainScript = nullptr; QMap scripts; QMap listeners_scripts; QMap agents_scripts; public: AxScriptManager(AdaptixWidget* main_widget, QObject *parent = nullptr); ~AxScriptManager() override; QJSEngine* MainScriptEngine(); void ResetMain(); void Clear(); QJSEngine* GetEngine(const QString &name); AdaptixWidget* GetAdaptix() const; QMap GetAgents() const; QVector GetCredentials() const; QStringList GetInterfaces() const; QStringList ListenerScriptList(); void ListenerScriptAdd(const QString &name, const QString &ax_script); QJSEngine* ListenerScriptEngine(const QString &name); QStringList AgentScriptList(); void AgentScriptAdd(const QString &name, const QString &ax_script); QJSEngine* AgentScriptEngine(const QString &name); QJSValue AgentScriptExecute(const QString &name, const QString &code); QStringList ScriptList(); bool ScriptAdd(ExtensionFile* ext); void ScriptRemove(const ExtensionFile &ext); void GlobalScriptLoad(const QString &path); void GlobalScriptUnload(const QString &path); void RegisterCommandsGroup(const CommandsGroup &group, const QStringList &listeners, const QStringList &agents, const QList &os); void RemoveEvent(const QString &event_id); QList FilterMenuItems(const QStringList &agentIds, const QString &menuType); QList FilterEvents(const QString &agentId, const QString &eventType); void AppAgentSetColor(const QStringList &agents, const QString &background, const QString &foreground, const bool reset); void AppAgentSetImpersonate(const QString &id, const QString &impersonate, const bool elevated); void AppAgentSetMark(const QStringList &agents, const QString &mark); void AppAgentSetTag(const QStringList &agents, const QString &tag); int AddMenuSession(QMenu* menu, const QString &menuType, QStringList agentIds); int AddMenuFileBrowser(QMenu* menu, QVector files); int AddMenuProcessBrowser(QMenu* menu, QVector processes); int AddMenuDownload(QMenu* menu, const QString &menuType, QVector files); int AddMenuTask(QMenu* menu, const QString &menuType, const QStringList &tasks); public slots: void consolePrintMessage(const QString &message); void consolePrintError(const QString &message); void emitFileBrowserDisks(const QString &agentId); void emitFileBrowserList(const QString &agentId, const QString &path); void emitFileBrowserUpload(const QString &agentId, const QString &path, const QString &localFilename); void emitProcessBrowserList(const QString &agentId); }; #endif